我正在尝试让自己摆脱 jQuery(我的心在正确的地方,不是吗?),并且我很难找到相当于:not()
选择器。
I have document.body.addEventListener("mousewheel", scrollTriggered)
,我想在除特定 div 之外的任何内容的滚动上触发(在小提琴中,#something)。我尝试过集成 event.target,但没有成功。
非常感谢任何帮助。
看JSFiddle http://jsfiddle.net/jboneca/sBg3a/1/
您可以检查事件是否源自您想要避免的元素内。为此,您必须从 DOM 树向上遍历target
并比较每个节点的id
属性,或使用Node.contains https://developer.mozilla.org/en-US/docs/Web/API/Node.contains(首先检查兼容性部分):
var ignore = document.getElementById('something');
function scrollTriggered(event) {
var target = event.target;
if (target === ignore || ignore.contains(target)) {
return;
}
// do other stuff
}
DEMO http://jsfiddle.net/sBg3a/3/
也就是说,马克软件的回答 https://stackoverflow.com/a/24174447/218196甚至更好,因为它从一开始就阻止了事件的发生。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)