点击链接不应该触发父母onclick-event

时间:2011-04-08 05:47:49

标签: javascript jquery html

我有以下代码:

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

当有人点击链接时,会触发javaschipt事件。我希望只有当有人点击文本或div容器内的空白空间时才触发该事件;而不是有人点击链接。

是否可以在触发事件时调用函数,该函数检查用户单击的元素。一些链接

onclick="foo(caller);"

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

4 个答案:

答案 0 :(得分:6)

在链接中添加一个单击处理程序,并停止向父div冒泡的事件。像这样:

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

OnClick事件您可以传递当前对象类型。

之类的东西

onclick=foo(this)

函数foo看起来像

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

答案 3 :(得分:0)

使用取消绑定http://api.jquery.com/unbind/