有没有办法使用 jQuery 委托事件,该事件将对应于页面上与选择器匹配的所有元素,而不是委托 from $(document)
?
由于这可能措辞不佳,因此问题如下:
过去jQuery.live
,所有与选择器匹配的元素都有委托事件。这被jQuery.delegate
哪个将特定上下文选择器中的事件委托给其子级所取代,而后者又被 取代jQuery.on
,后者实际上做同样的事情,但在幕后有不同的位(我想)。
我想要做的是安全地为div.foo
我页面上的每个页面添加一个事件处理程序,无论它可能存在于何处或何时存在。根据文档和实证研究,以下内容只会绑定到.foo
脚本运行时存在的元素。由于.foo
稍后可能会在页面上放置元素的代码,因此这并不完全有效。
jQuery('.foo').on('click', handler);
由于live
已弃用(可能已删除?),我试图不使用它,但我能想出的唯一解决方案是
jQuery(document).on('click', '.foo', handler);
但这不是live
最初在幕后所做的吗?更重要的是,有什么重要的理由不这样做吗?
我们专门使用版本 1.7.2,但通用 jQuery 答案也会有所帮助。