最初的直觉告诉我,使用绑定或直接事件方法向一组 jQuery 元素添加侦听器,例如..
$('.className').click(funcName);
比使用 $.each 方法将侦听器一个接一个地添加到同一个集合要合适得多,因为...
$('.className').each(function(){ $(this).click(funcName); });
但是,当涉及到插件开发时,您正在处理用户在页面的整个生命周期中多次调用插件实例的可能性,在页面加载时以及在页面加载后很长时间通过 ajax,将处理程序应用于每个元素本身,而不是试图将处理程序抽象到它们的全局类集?
我正在处理的主要问题是“在事件处理方面,处理调用的插件的多个实例的最佳方法是什么?为了减少工作量?” 我知道我们可以绑定和取消绑定,但有更好的方法吗?
编辑
插件构造的部分代码
init : function(){
this.each(function(opts){
// adding event handlers here removes
// the need to worry about multiple instances
// and duplicate handles over the lifetime of the page
});
// adding 'global' handlers here may/may not be more
// efficient, but adds an issue of multiple instances
return this;
}