const findClosestParent = (startElement,fn) => {
const parent = startElement.parentElement;
if (!parent) return undefined;
return fn(parent) ? parent : findClosestParent(parent,fn);
};
$document.on('click',event => {
let target = event.target;
if (findClosestParent(target,parent => parent.classList.contains('.calendar')) {
// do some things
}
});
我正在尝试查找某个元素是否在另一个元素内。在Internet Explorer 11中,我无法做到这一点。因此,我走了创建递归搜索DOM树函数的路线。但是,我也不能简单地使用jQuery的event.target property
在有角度的js控制器中获取Internet Explorer 11中目标事件元素的父元素。此代码段无效,因为无论我单击什么,startElement.parentElement
中的findClosestParent
始终为null。此外,startElement.parentNode
为空。 event.currentTarget.parentNode
为空。我已经尝试了很多东西。没事。我尝试过的另一件事是,我不能简单地向要选择并使用纯香草js getElementById
查询选择器的div中添加一个id,因为这些元素是在第三方库中抽象出来的。我非常希望能够使用事件目标或类似的东西来获取IE11中的dang元素。
我认为,可以归结为以下事实:根据https://developer.mozilla.org/en-US/docs/Web/API/Node/parentElement,对于IE,parentElement
是“仅受Element
支持”。那就是它的意思……这意味着我认为互联网浏览器认为event.target
不是“ Element
”。