2011-04-08 58 views
3

我有下面的代码:点击链接不应触发父母的onclick事件

<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'); 
    } 
} 
+0

相似[问题](http://stackoverflow.com/questions/3838758/select-the-div-but-not-的链接,里面-IT-jQuery的问题) – diEcho 2011-04-08 06:00:35

回答

6

添加一个单击处理程序到你的链接,并停止事件bubbleing父DIV。就像这样:

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

OnClick事件时,可以通过当前对象类型。 像

函数foo看起来像

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