使用jQuery live()初始化插件?
使用jQuery,在特定类的所有当前和未来元素上自动初始化插件的最佳方法是什么?
例如,假设我希望所有元素都有jQuery UI Datepicker插件,包括我可能在运行时创建的任何插件。
基本上,我想做这样的事情:
$('.datepicker').live('create', function() { $(this).datepicker(); });
但是,当然,我没有可以使用的创建事件。
你可以使用.livequery()
插件 ,由于.live()
导致的死亡报告被夸大了:)
.live()
侦听事件冒泡,因此它的用途略有不同。 使用.livequery()
你可以达到你想要的效果:
$('.datepicker').livequery(function() { $(this).datepicker(); });
这将在当前和未来的 .datepicker
元素上运行。
根据我的理解,你甚至在创建自定义之后。 这是这样的:
$('.datepicker').bind('foo', { 'bar' : 'bam' }, function(e) { $(this).datepicker(); }); $('.datepicker').trigger('foo');
希望这可以帮助