我将滚动事件绑定到我的所有html元素。获取我使用以下过滤器的所有元素
var element = $(myelemt).parentsUntil("html").add($(window));
return element
这里的元素将返回body,window和所有父htmls标签。
对于这个html元素,我绑定了以下代码的事件:
element.on("scroll", function (e) {
$("#mywrapper3").html($("#mywrapper3").html() + "scrolling<br>");
}
这里我想阻止特定的子div元素绑定。我怎么能做到这一点? 例如,在我的页面中有一个div元素(样本中包含mywrapper id的元素)我不想绑定这个滚动事件。
另外,我必须像第一个代码一样过滤元素。那么如何实现这一点而不是使用停止传播。有没有办法做到这一点。
我准备了一个jsfiddle。请获取以下链接 https://jsfiddle.net/khkcjb6o/ 谢谢你的帮助
答案 0 :(得分:1)
.off()
方法就是您所需要的。最初我开始使用iframe解决方案回答并稍后提出了更好的解决方案。
由于iframe的上下文与其父级不同,因此如果您在父页面上注册所有内容,则不会包含它。
答案 1 :(得分:0)
您可以使用:not()
CSS选择器
var element = $(myelemt + ':not(#mywrapper3)').parentsUntil("html").add($(window));
element.on("scroll", function (e) {
$("#mywrapper3").html($("#mywrapper3").html() + "scrolling<br>");
}