.on()函数调用之间的区别

PSR*_*PSR 5 jquery

以下有什么区别?

$(document).on("scroll",".wrapper1", function(){
   $(".wrapper2")
    .scrollLeft($(".wrapper1").scrollLeft());
});  

$('.wrapper1').on("scroll", function(){
        $(".wrapper2")
            .scrollLeft($(".wrapper1").scrollLeft());
});
Run Code Online (Sandbox Code Playgroud)

什么时候应该准确使用每个功能?

Aru*_*hny 5

这两者之间的区别是

$('.wrapper1').on("scroll", ....)将scroll事件绑定到仅在执行此语句时出现的那些元素,即如果在执行此语句wrapper1后动态添加任何带有类的新元素,则不会为这些元素执行事件处理程序.

$(document).on("scroll",".wrapper1", ...)另一方面,将向document对象注册一个事件处理程序,并且只要在具有类`wrapper``的元素内发生滚动,就会利用事件冒泡来调用处理程序,因此它将支持动态添加元素.

所以什么时候喜欢一种方法

如果您只有有限数量的元素并且它们不是动态添加的,那么您可以选择第一种方法

如果你有很多元素或者动态添加这些元素,则首选第二种方法.