【问题标题】:How to detect/listen for a class being added to an element on hover?如何检测/侦听悬停时添加到元素的类?
【发布时间】:2018-05-24 13:36:43
【问题描述】:

我在悬停.show-dropdown 时向我的导航添加了一个类,我想在启动导航时禁用我的滚动。

突变观察者是做这件事的最好方法还是有点矫枉过正?

我想做一些简单的事情,比如

if($('.show-dropdown').length > 0) {
  window.disableOnScroll = 1;
}

不幸的是,当悬停启动时,它永远不会被调用,我相信这是因为它只检查加载的类。

突变观察者是我最好的选择吗? 还是应该只用它来监听 node/element 被添加到 dom 而不是类?

【问题讨论】:

  • 你说的nav是什么意思?
  • 有什么理由不使用mouseover?
  • @brk 导航有一个下拉菜单,当悬停时会显示,这就是我所指的

标签: javascript jquery html css mutation-observers


【解决方案1】:

您可以通过订阅mouseover 事件来禁用滚动。

为了再次启用滚动,您还需要监听mouseleave 事件。当这些事件被触发时,重新启用滚动。

事件委托者将非常适合此操作,这样您就不必在一个地方处理所有事件。

【讨论】:

  • 感谢 nipuna,我得到了它与 mouseover/mouseleave 组合一起使用 :) 事件委托者是什么意思?
  • 没问题。这是一种用于组合来自多个元素的事件的方法(在您的示例中,如果您有多个 .show-dropdown)。如果你只有一个,你就不需要它们。
猜你喜欢
  • 1970-01-01
  • 2019-01-29
  • 2017-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多