在jquery.click()方法上检查传播中的一个元素是否具有特定的类



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()将导致目标的父级

相关内容

  • 没有找到相关文章

最新更新