$('#section').on('click','.target',function(){~})
这是该部分的目标,因此范围有限。
$('.target').click(function(){~})
这是dom.so它的范围很广。
哪个更快? 我认为后者很快。因为,前者,从dom和下一个搜索部分,搜索目标。 但是后者只能从dom中获得目标。
这个想法是错的吗?
答案 0 :(得分:2)
限制范围是否更好?
总之,是的。
您发布的两个示例之间存在一些差异
$('#section').on('click','.target',function(){~})
这会针对#section
注册一个处理程序,只要点击它就会触发该处理程序,但只有在.target
上才会调用你的处理程序(如果实际点击了它)。
$('.target').click(function(){~})
相当于
$('.target').on('click', function(){~})
只会在处理程序在页面中的任何位置注册的位置注册到DOM中的.target
。
从性能角度来看,您应该将范围限制为注册处理程序时页面上的元素。 如果在您的特定情况下有意义。
$('#section .target').on('click', function(){~})