【问题标题】:Attach jquery event to element excluding children with class将 jquery 事件附加到不包括具有类的子元素的元素
【发布时间】:2018-04-11 19:12:28
【问题描述】:

我有这样的元素:

<div class="parent">
  <div class="one"></div>
  <div class="two"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="three">
    <div class="four">
      <div class="child"></div>
      <div class="five"></div>
    </div>
  </div>
</div>

是否可以将“mousemove”事件应用于“.parent”,该事件不会被可能不是直接后代的“.child”元素触发?

我尝试了 .children、.not 的组合,但似乎没有任何效果。

编辑:感谢建议的重复问题和否决,但我看不出它如何适用于我的问题。

【问题讨论】:

标签: jquery selector


【解决方案1】:

这是你的意思吗?此代码将事件附加到父级,但取决于悬停的元素,它的行为会有所不同。在这种情况下,如果它有子类。

    $(".parent").on('mousemove', function(e){
         console.log(e);
         if(e.target.className === 'child'){
             console.log('do nothing, this has child class')
         } else {
             console.log('do whatever, this does not have the child class')
         }
    });

这里还有一个 jsfiddle jsfiddle

【讨论】:

  • 是的,这样就可以了,谢谢。我担心检查“mousemove”的条件,并试图用选择器找到解决方案,但这实际上工作正常
  • 太棒了,注意在这种情况下我正在检查 className,对于多个类,您可能必须检查目标对象的 classList,并遍历它们以获得所需的行为。很高兴我能帮上忙。
猜你喜欢
  • 2019-03-06
  • 1970-01-01
  • 2018-05-19
  • 2017-01-10
  • 2021-10-26
  • 2017-03-18
  • 2021-01-20
  • 1970-01-01
  • 2015-08-31
相关资源
最近更新 更多