2010-04-13 69 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