2010-04-13 18 views
6

Korzystając z jQuery, jaki jest najlepszy sposób automatycznego zainicjowania wtyczki we wszystkich obecnych i przyszłych elementach danej klasy?Użycie jQuery live() do zainicjowania wtyczek?

Na przykład, chcę, aby wszystkie elementy <input type="text" class="datepicker" /> miały wtyczkę jQuery UI Datepicker, w tym wszelkie, które mogę utworzyć w czasie wykonywania.

Zasadniczo, chcę zrobić coś takiego:

$('.datepicker').live('create', function() { 
    $(this).datepicker(); 
}); 

Ale, oczywiście, nie ma ani tworzyć zdarzenie mogę użyć.

Odpowiedz

6

Można użyć .livequery() plugin na to, doniesienia o jej śmierci z powodu .live() były mocno przesadzone :)

.live() nasłuchuje zdarzenia bulgotać więc ma nieco inny cel. Z .livequery() chcesz osiągnąć to, co chcesz tak:

$('.datepicker').livequery(function() { 
    $(this).datepicker(); 
}); 

To będzie działać na obecnych i przyszłych.datepicker elementów.

+0

Perfect - dzięki Nick –

+2

jest to możliwe z .live()? – Codler

5

Z tego co rozumiem, po stworzeniu nawet parzystego. który jest tak:

$('.datepicker').bind('foo', { 'bar' : 'bam' }, function(e) 

    { 

    $(this).datepicker(); 

    }); 

$('.datepicker').trigger('foo'); 

nadzieję, że to pomaga

+2

+1 brak zależności od dodatkowej wtyczki –

Powiązane problemy