2015-07-09 12 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 
    } 
}); 
相關問題