2010-04-13 67 views
6

使用jQuery,在特定類的所有當前和未來元素上自動初始化插件的最佳方式是什麼?使用jQuery live()來初始化插件?

例如,假設我希望所有<input type="text" class="datepicker" />元素都具有jQuery UI Datepicker插件,包括我可能在運行時創建的任何插件。

從本質上講,我希望做這樣的事情:

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

但是,當然,沒有一個創建事件我可以使用。

回答

6

可以使用.livequery() plugin對於這一點,它報道的死亡是由於.live()已經被大大誇大了:)

.live()監聽事件冒泡所以它的用途略有不同。隨着.livequery()你會實現你想要的是這樣的:

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

這將在當前和未來.datepicker元素運行。

+0

完美 - 感謝Nick – 2010-04-20 03:05:32

+2

是否可以使用.live()? – Codler 2011-03-13 08:33:36

5

從我的理解你是在創建自定義後甚至。這是這樣的:

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

    { 

    $(this).datepicker(); 

    }); 

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

希望這有助於

+2

+1對另一個插件沒有依賴性 – 2012-03-23 18:48:11