是否更好地限制范围?

时间:2018-03-23 11:25:24

标签: javascript jquery

$('#section').on('click','.target',function(){~})

这是该部分的目标,因此范围有限。

$('.target').click(function(){~})

这是dom.so它的范围很广。

哪个更快? 我认为后者很快。因为,前者,从dom和下一个搜索部分,搜索目标。 但是后者只能从dom中获得目标。

这个想法是错的吗?

1 个答案:

答案 0 :(得分:2)

  

限制范围是否更好?

总之,是的。

您发布的两个示例之间存在一些差异

$('#section').on('click','.target',function(){~})

这会针对#section注册一个处理程序,只要点击它就会触发该处理程序,但只有在.target上才会调用你的处理程序(如果实际点击了它)。

$('.target').click(function(){~})

相当于

$('.target').on('click', function(){~})

只会在处理程序在页面中的任何位置注册的位置注册到DOM中的.target

从性能角度来看,您应该将范围限制为注册处理程序时页面上的元素。 如果在您的特定情况下有意义。

$('#section .target').on('click', function(){~})