我有一个div绑定了一个click事件。我想在这个div中添加一个锚标签,它不会触发div点击的动作。我已经尝试将'onclick="return false;"'
放在锚点上,但它仍会触发对div的点击。这有诀窍吗?
答案 0 :(得分:3)
鉴于你正在使用jQuery的click()
,你可以这样做:
$('div').click(
function(e){
if (e.target.tagName == 'A') {
return false; // do nothing if the click is on the a element
}
else {
// do something else
}
});
或者:
$('a').click(
function(e){
e.stopPropagation(); // stops the click moving up to the parent elements
});
答案 1 :(得分:1)
要防止它,您应该防止事件冒泡。 对于没有w3c浏览器,有cancelBubble属性,其他方式有stopPropagation。
您希望更好地使用它以一种方式设置事件。对于jquery有这样的情况: event.stopPropagation和event.stopImmediatePropagation 防止它在所有浏览器中以单向冒泡的方法。