首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用JavaScript的hasClass()来攻击元素的子元素?

如何使用JavaScript的hasClass()来攻击元素的子元素?
EN

Stack Overflow用户
提问于 2016-12-05 07:05:32
回答 2查看 47关注 0票数 0

我在插件中有一个按钮,其中包含一个svg:

代码语言:javascript
复制
<button class="next"><svg viewBox="0 0 24 24" etc etc></svg></button>

当前,该按钮用于触发事件onMouseDown:

代码语言:javascript
复制
self._onMouseDown = function(e)
    {
       if (hasClass(target, 'next')) {
         self.prevMonth();
      }
    }

用hasClass瞄准按钮。

但是,我注意到我不能单击SVG来执行函数,只能单击后面的按钮。

有谁知道让hasClass成为一个子元素的方法吗?

(ps:在这个项目中,我不能使用JQuery)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-05 07:19:56

尝试在svg元素上使用css属性pointer-events:none

它将指示鼠标事件“遍历”元素,并将“下面”的元素作为目标(在您的例子中是按钮)。这里有更多信息。

注意:检查浏览器兼容性。我认为它不适用于< IE11。去你妈的

票数 1
EN

Stack Overflow用户

发布于 2016-12-05 07:21:09

如果要检查元素或其任何父元素是否有类,则可以在parentNodes中搜索:

代码语言:javascript
复制
function hasClassOrParent(node, cls) {
  while (node) {
    if (hasClass(node, cls)) return true;
    node = node.parentNode;
  }
  return false;
}

用该函数替换hasClass应该有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40968809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档