我在插件中有一个按钮,其中包含一个svg:
<button class="next"><svg viewBox="0 0 24 24" etc etc></svg></button>当前,该按钮用于触发事件onMouseDown:
self._onMouseDown = function(e)
{
if (hasClass(target, 'next')) {
self.prevMonth();
}
}用hasClass瞄准按钮。
但是,我注意到我不能单击SVG来执行函数,只能单击后面的按钮。
有谁知道让hasClass成为一个子元素的方法吗?
(ps:在这个项目中,我不能使用JQuery)
发布于 2016-12-05 07:19:56
尝试在svg元素上使用css属性pointer-events:none。
它将指示鼠标事件“遍历”元素,并将“下面”的元素作为目标(在您的例子中是按钮)。这里有更多信息。
注意:检查浏览器兼容性。我认为它不适用于< IE11。去你妈的
发布于 2016-12-05 07:21:09
如果要检查元素或其任何父元素是否有类,则可以在parentNodes中搜索:
function hasClassOrParent(node, cls) {
while (node) {
if (hasClass(node, cls)) return true;
node = node.parentNode;
}
return false;
}用该函数替换hasClass应该有效。
https://stackoverflow.com/questions/40968809
复制相似问题