繁体   English   中英

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

[英]check if one of the the elements in propagation has a specific class, on jquery.click() method

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM