So today I just came across the ‘live()’ function that binds any future and past elements to the whatever event you choose, such as ‘onclick’.
Right now I’m having to set up buttons like the following each time I load a new button via ajax …
$('a.btn.plus').button({icons:{primary:'ui-icon-plusthick'}});
$('a.btn.pencil').button({icons:{primary:'ui-icon ui-icon-pencil'}});
$('a.btn.bigx').button({icons:{primary:'ui-icon ui-icon-closethick'}});
So, instead of calling these lines each time I use ajax to add a new button, is there a similar way to tell JQuery to setup my buttons ANYTIME I add new ones?
Thanks for any help!
Mmh not really. But there is the function
.ajaxSuccess()which is triggered whenever an Ajax call is successful. So you could do:But this will run on any links with the classes, not only on the new ones. But if you append them on a time (i.e. not multiple
a.btn.plusat once) you might be able to use the:lastselector (a.btn.plus:last).You can also create a function and just that from your callback functions:
and in the Ajax call:
This way you can pass the parent element to the function in order to find the link only inside this element (so the code would only work on the new links).
A last option would be generate a custom event but in the end this would be similar to just doing a function call in your case so you gain not much.