确定事件目标是否是已知元素的子元素的最有希望的方法是什么?

What is the most promising way to find whether or not event target is a child of known element?

本文关键字:元素 有希望 方法 是什么 是否是 目标 事件      更新时间:2023-09-26

我可以像这样访问父元素:

var parentElem = angular.element('#parent');

然后在下面的点击事件中,我想检查点击是否由上面父级的任何子级生成。

$('html').click(function (e) {
  // check e.target is child of 'parentElem'           
});

您应该能够使用普通的JavaScript实现这一点:

// Get a reference to a raw DOM node
var parentElem = angular.element("#parent")[0];
$("html").click(function(e) {
    // Get a reference to the event target
    var element = e.target;
    // "Climb" up the document tree until you've found the parent,
    // or you can "climb" up no further.
    while (parentElem !== element && element.parentNode) {
        element = element.parentNode;
    }
    if (element === parentElem) {
        // event target is inside parentElem
    }
    else {
        // event target is not a child of parentElem
    }
});