Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jQuery中为动态加载的项附加事件处理程序,最佳做法是什么?_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 在jQuery中为动态加载的项附加事件处理程序,最佳做法是什么?

Javascript 在jQuery中为动态加载的项附加事件处理程序,最佳做法是什么?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个自定义插件,它本质上是一个灯箱。我使用$'a.lightbox'。lightbox;初始化它,并使用$this.on'click',函数;以附加事件处理程序 在1.9之前,您可以使用.selector来执行此$document;因此,事件将附加到所有当前项和未来项,例如通过AJAX动态插入的项 在1.9之后,由于.selector被折旧,因此建议如果需要选择器,则将其作为一个选项进行解析,例如:$'a.lightbox'.lightbox{selector:'a.lightbox';虽然

我有一个自定义插件,它本质上是一个灯箱。我使用$'a.lightbox'。lightbox;初始化它,并使用$this.on'click',函数;以附加事件处理程序

在1.9之前,您可以使用.selector来执行此$document;因此,事件将附加到所有当前项和未来项,例如通过AJAX动态插入的项

在1.9之后,由于.selector被折旧,因此建议如果需要选择器,则将其作为一个选项进行解析,例如:$'a.lightbox'.lightbox{selector:'a.lightbox';虽然这非常难看,但这是jQuery文档中所述的推荐解决方案

这造成的问题是,这不是简单地通过on方法使用不同的选择器值,而是您必须更改两个方面,例如:

// For Live Events
$(document).on('click', option.selector, function);

// For Non-Live Events
$(this).on('click', null, function);
我的问题是:我的插件应该负责并允许动态输入项目,还是应该由脚本负责插入新项目以重新初始化lightbox插件,并且重新初始化会有任何重大开销


希望这是有意义的,希望这是对此类问题的正确交换。

检查您的插件是否支持动态内容?我的问题是我是否应该构建动态内容支持,还是脚本负责添加内容。您应该添加插件以支持委派^Yes你的插件应该能够理想地处理动态事件委派。谢谢你的评论,我想大家的共识是我的插件需要支持委派