点击链接不应触发父级onclick事件。

4

我有以下代码:

<div onclick="alert('div event');" style="cursor:pointer">
    some text
    <a href="asd.php" id="link">click</a>
</div>

当有人点击链接时,将触发javascript事件。我希望只有在某人单击文本或div容器内的空白处时才触发事件,而不是单击链接时触发事件。
当事件被触发时,是否可能调用一个函数来检查用户单击了哪些元素,例如:
onclick="foo(caller);"

并且

function foo(element){
    if(element!='link'){
        alert('yes');   
    }
} 

类似问题链接:https://dev59.com/_FDTa4cB1Zd3GeqPMtpb - xkeshav
4个回答

8

为您的链接添加点击处理程序并停止事件冒泡到父div。像这样:

$('#link').click(function(e) {
  e.stopPropagation();
});

1
$(function (){
  $('#link').click(function (e){ e.stopPropagation(); /*do other thing*/});
})

1

OnClick事件可以传递当前对象类型,类似于

onclick=foo(this)

函数foo的样子是这样的

 function foo(obj) {    
      if(obj.tagName != 'A') {
       alert('Yes')    
      } 
}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接