gpt4 book ai didi

javascript - 如何防止特定的 child 使用 Jquery 进行事件绑定(bind)?

转载 作者:行者123 更新时间:2023-11-28 01:00:43 25 4
gpt4 key购买 nike

我将滚动事件绑定(bind)到我所有的 html 元素。要获取我正在使用以下过滤器的所有元素

var element = $(myelemt).parentsUntil("html").add($(window));
return element

这里元素将返回 body、window 和所有父 htmls 标签。

对于这个 html 元素,我绑定(bind)了如下代码中的事件:

element.on("scroll", function (e) {
$("#mywrapper3").html($("#mywrapper3").html() + "scrolling<br>");
}

这里我只想防止特定的子 div 元素绑定(bind)。我怎样才能做到这一点?例如在我的页面中有一个 div 元素(样本中带有 mywrapper id 的元素)我不想绑定(bind)这个滚动事件。

此外,我必须像在第一个代码中一样过滤元素。那么如何实现这一点而不是使用停止传播。有什么办法可以做到这一点。

我准备了一个jsfiddle。请获取下面的链接 https://jsfiddle.net/khkcjb6o/感谢您的帮助

最佳答案

.off()方法是你需要的。最初我已经开始使用 iframe 解决方案来回答,后来想出了更好的解决方案。由于 iframe 的上下文与其父页面不同,因此如果您在父页面上注册所有内容,则不会包含它。

  1. PLUNKER ,第一部分有一个带有 srcdoc 和内容的 iframe。滚动 iframe,您会注意到它没有触发滚动计数器。
  2. 与具有普通 iframe 的第二部分相同。
  3. 第三和第四部分有滚动内容。
  4. 正如预期的那样,两者都触发了滚动事件。
  5. 单击使用 .off()IV OFF 按钮方法。
  6. 现在滚动第 IV 部分并注意滚动计数器没有增加。

.off() 是您所需要的。确保使用此表达式:

$('*').on('scroll', function() {....

* 将在页面上注册除 iframe 内容之外的所有内容,因此您不必编写问题中的所有代码。

关于javascript - 如何防止特定的 child 使用 Jquery 进行事件绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42294169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com