2015-11-26 90 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

相关问题