使用jQuery live()初始化插件?

Chr*_*tow 6 javascript jquery jquery-ui

使用jQuery,在特定类的所有当前和未来元素上自动初始化插件的最佳方法是什么?

例如,假设我希望所有<input type="text" class="datepicker" />元素都包含jQuery UI Datepicker插件,包括我可能在运行时创建的任何插件.

基本上,我想做这样的事情:

$('.datepicker').live('create', function() {
    $(this).datepicker();
});
Run Code Online (Sandbox Code Playgroud)

但是,当然,我没有可以使用的创建事件.

Nic*_*ver 6

你可以使用这个.livequery()插件,因为它的死亡报告.live()被夸大了:)

.live()听取事件泡沫,因此它的用途略有不同.随着.livequery()你实现你想要的东西:

$('.datepicker').livequery(function() {
    $(this).datepicker();
});
Run Code Online (Sandbox Code Playgroud)

这将在当前和未来 .datepicker元素上运行.

  • 是否可以使用.live()? (2认同)

Ali*_*deh 5

根据我的理解,你甚至在创建自定义之后.这是这样的:

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

  { 

    $(this).datepicker(); 

  });   

$('.datepicker').trigger('foo');
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助