如何在绑定到它的单击事件的情况下处理div内的锚点而不触发div单击事件

时间:2012-01-02 23:59:27

标签: javascript jquery html

我有一个div绑定了一个click事件。我想在这个div中添加一个锚标签,它不会触发div点击的动作。我已经尝试将'onclick="return false;"'放在锚点上,但它仍会触发对div的点击。这有诀窍吗?

2 个答案:

答案 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.stopPropagationevent.stopImmediatePropagation 防止它在所有浏览器中以单向冒泡的方法。