Using jQuery, what's the best way to automatically initialize a plugin on all current and future elements of a specific class?
For example, say I want all <input type="text" class="datepicker" />
elements to have the jQuery UI Datepicker plugin, including any I might create at runtime.
Essentially, I want to do something like this:
$('.datepicker').live('create', function() {
$(this).datepicker();
});
But, of course, there isn't a create event I can use.
You can use the .livequery()
plugin for this, reports of it's death due to .live()
have been greatly exaggerated :)
.live()
listens for event to bubble so it serves a slightly different purpose. With .livequery()
you'd achieve what you want like this:
$('.datepicker').livequery(function() {
$(this).datepicker();
});
This will run on current and future .datepicker
elements.
From what I understand you are after creating a custom even. which is like this:
$('.datepicker').bind('foo', { 'bar' : 'bam' }, function(e)
{
$(this).datepicker();
});
$('.datepicker').trigger('foo');
hope this helps
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With