以下内容有什么区别?

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

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


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

最佳答案

两者之间的区别是

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

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

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

如果元素数量有限并且没有动态添加元素,则可以选择第一种方法

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

08-19 17:48