jQuery.click()
方法中,可以使用even.target
获取触发事件的元素类。我想检查已单击的元素或其父元素之一是否具有某些特定类。
<div class="c1"><a href="#" class="c2">Click</a></div>
<script>
$(document).click(function(e){
if($(e.target).hasClass("c1"))
alert("It's C1");
});
</script>
但它总是失败,因为c2
已被单击。尽管使用了.parent()
,但我想知道是否有办法检查点击事件的传播。
从你说的是 C1 被点击了,你想知道是否
您需要查看元素是否在被单击的元素内部。
var target = $(e.target);
if (target.hasClass("c2") || target.find(".c2").length) {
alert("C2 is a child");
}
编辑,现在你最初问的不是你真正想要的。
现在,如果是父母,它就像
var target = $(e.target);
if (target.hasClass("c1") || target.parents(".c1").length) {
alert("C1 child was clicked");
}
或正如伊恩指出的那样
if (target.closest(".c1").length) {
alert("C1 child was clicked");
}
你可以
用$(this).hasClass
代替$(e.target)。此外,$(this).parent()
将导致目标的父级