2015-07-09 2 views
-1

У меня есть доступ к моему родительскому элементу, как это:Каков наиболее перспективный способ определить, является ли цель события дочерним элементом известного элемента?

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

Тогда на этом ниже события щелчка Я хочу, чтобы проверить, если клик порождается любым ребенком над родителем.

$('html').click(function (e) { 

    // check e.target is child of 'parentElem'   

}); 
+0

что вы имеете в виду ноу элемента? –

+0

Почему downvote? Я знаю, что есть много подобных вопросов. Но ни одна из них не дает надежного решения моей ситуации. – Shardul

+0

'$ (e.target) .closest ('# parent'). Length' работал для меня! – Shardul

ответ

1

Вы должны быть в состоянии достигнуть этого с простым ванильным 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 
    } 
});