2012-01-02 70 views
2

我有一个绑定了点击事件的div。我想在这个div内添加一个锚标签,不会触发div点击的动作。我已经尝试将'onclick="return false;"'放在锚点上,但它仍然会触发div上的点击。这有什么窍门吗?如何处理绑定到div的点击事件而不触发div单击事件的div中的锚点

+0

你是如何将点击处理程序绑定到div元素的? – 2012-01-03 00:00:33

+0

我正在使用jQuery .click方法 – coder 2012-01-03 00:03:20

+0

可能的重复[如何停止事件传播与内联onclick属性?](http://stackoverflow.com/questions/387736/how-to-stop-event-propagation-with -inline-的onclick属性) – Purag 2012-01-03 00:09:35

回答

2

假设你使用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

为了防止这种情况,你应该阻止事件冒泡。 对于没有w3c浏览器的情况,有cancelBubble属性,其他方式有stopPropagation。

以您希望更好地使用它来设置一种风格事件的方式。对于这种情况下,jquery有: event.stopPropagationevent.stopImmediatePropagation 防止它在所有浏览器中以单向方式冒泡的方法。