使用$(document).on('click',...,function)
EDIT是否有任何不利之处:[我的意思是$(文件).on('click',#xzz,function)]over
$('#xyz')。click(功能)`??
特别是我发现它在我必须使用带控件的部分视图的页面中非常有用。我甚至在部分视图存在之前就将$(document).on ()'s
与document.ready一起调用,当我得到局部视图时,我不必重新连接事件。
但是我想知道这种方法有什么缺点吗?
谢谢
答案 0 :(得分:4)
是
如果您将事件处理程序添加到document
,则必须处理所有事件,即使是您不想处理的事件。
而不是document
,在委派事件时总是使用最接近目标的容器。
答案 1 :(得分:1)
不同之处在于冒泡。从性能的角度来看,前者在需要绑定大量元素的情况下要好得多。
<ul id="list">
<li></li>
<li></li>
... a thousand more <li>'s
</ul>
在这种情况下,$('#list').on('click', 'li', function() { });
会比$('li').click(function() { });
好得多。这是1个事件与100万个事件和2个事件之间的区别。我还建议不要将这些元素绑定到文档,除非你别无选择。最快的选择器将绑定到ID。
答案 2 :(得分:0)
$(document).on('click',...,function )
将在整个文档上注册一个点击事件,因此点击页面上的任意位置都会触发它。
$('#xyz').click(function)
将仅在id = xyz
的元素上注册触发器