以下内容有什么区别?
$(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'的元素内发生滚动,就会利用事件冒泡来调用该处理程序,因此它将支持动态添加元素。
所以什么时候更喜欢一种方法
如果元素数量有限并且没有动态添加元素,则可以选择第一种方法
如果您有很多元素,或者这些元素是动态添加的,则首选第二种方法。