我正在寻找if (! el.nextSibling.contains(e.target) )
的模拟,不确定哪些jQuery替代品可行,并将支持IE8和IE9
我已经尝试了$.contains($(el).next(), e.target)
和各种变化,但我已经碰壁了。有什么建议吗?
编辑 - 在这种情况下的事件是点击:
document.addEventListener('click', function(e) {
[].forEach.call(myMenu.open, function(el) {
el.addEventListener('click', function(e) {
myMenu.activate(e);
}, false);
});
}
...
'activate': function(e) {
e.preventDefault();
var open = document.querySelectorAll('.slide');
[].forEach.call(open, function(el) {
if (!el.nextElementSibling.contains(e.target) && el != e.target) {
console.log('Do something');
}
}
}
第二次更新: 我现在以不同的方式进行此操作 - 我能够引用parentNode并获得我想要的相同效果,这在IE8和IE9中得到支持。 E.G:
if (!el.parentNode.contains(e.target) && el != e.target) {
感谢您的帮助!
答案 0 :(得分:0)
if (!el.parentNode.contains(e.target) && el != e.target) {
适用于我的情况,并受IE8和IE9支持