Javascript 无法在AngularJS中获取Internet Explorer 11中事件目标的父级

Javascript 无法在AngularJS中获取Internet Explorer 11中事件目标的父级,javascript,jquery,angularjs,internet-explorer-11,jquery-events,Javascript,Jquery,Angularjs,Internet Explorer 11,Jquery Events,我试图找出一个元素是否在另一个元素中。我不能用InternetExplorer11中的最接近者来做这件事。因此,我采用了创建递归搜索DOM树函数的方法。但是,我也不能简单地使用jQuery的event.target属性在angular js控制器中获取InternetExplorer 11中目标事件元素的父元素。这段代码不起作用,因为无论我单击什么,findClosestParent中的startElement.parentElement始终为空。另外,startElement.parentNo

我试图找出一个元素是否在另一个元素中。我不能用InternetExplorer11中的最接近者来做这件事。因此,我采用了创建递归搜索DOM树函数的方法。但是,我也不能简单地使用jQuery的
event.target属性
在angular js控制器中获取InternetExplorer 11中目标事件元素的父元素。这段代码不起作用,因为无论我单击什么,
findClosestParent
中的
startElement.parentElement
始终为空。另外,
startElement.parentNode
为空<代码>事件.currentTarget.parentNode为空。我试过很多东西。什么都不管用。我尝试过的另一件事是,我不能简单地向我试图选择的div添加一个id,并使用一个纯香草的js
getElementById
query选择器,因为这些元素被抽象到第三方库中。我非常希望能够使用eventtarget或类似的东西来获得IE11中的dang元素


我认为这可以归结为这样一个事实,即根据IE,
parentElement
是“仅在
Element
上受支持的”。它就是这么说的。。。这意味着我认为internet explorer不认为
事件。target
是一个“
元素”

这里是一个使用angularjs和jQuery核心的简单解决方案

尝试使用
日历
类单击元素内外的某个位置

(函数(){
"严格使用",;
角度模块('app',[]);
有棱角的
模块('应用程序')
.controller('myController',['$scope',函数($scope){
$(文档)。在('click',函数($event){
var nativeElement=$event.target;
if($(nativeElement).closest('.calendar').length){
log(“在日历中”);
}
否则{
log(“日历之外”);
}
});
}])
})();
.calendar{
利润率:20px;
填充:20px;
边框:2件纯蓝;
}
.小部件{
利润率:20px;
填充:20px;
边框:2倍纯绿;
}

历法
不是日历

我的回答最终解决了你的问题吗?
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
  }

});