2015-11-26 44 views
0

我想檢查事件目標是否是特定包裝的後代。Jquery has()vs parents()

我應該使用has()函數還是父母()?

if($('.wrapper').has(e.target).length){ 
//do something 
} 

VS

if ($(event.target).parents('.wrapper').length){ 
//do something 
} 
+0

這是給你的。你也可以使用'nearest()'。 –

+0

使用你發現最具可讀性的那個。 –

+0

@FrédéricHamidi雅但''最接近()'包含元素本身,所以可能在某些特定情況下不會預期行爲 –

回答

1

這是給你的。使用任何你發現更易讀或更方便的東西。

方法三是正確delegation

$(document).on("click", ".wrapper *", function (e) { 
    // whatever 
}); 
+0

*在這種情況下做了什麼? – user3667832

+1

@ user3667832選擇任何種類的後代。但我不確定它與問題有什麼關係?編輯:好吧,我現在看到外推:) –

+0

@ user3667832閱讀有關jQuery中的事件委託。看到我添加到我的答案的鏈接。 – Tomalak

相關問題