jQuery单击内联href时防止div的单击行为

时间:2011-11-14 14:22:43

标签: javascript jquery click live preventdefault

我有一个包含href的div。 div有一个jQuery实时点击事件:

$(".item").live("click", function() { 
    window.location = this.id;  
});

在div中我有一个href:

<div class="item" id="/test.html">
    <a href="javascript:void(0);" class="test" id="123">link</a>
</div>

还有实时点击事件:

$(".test").live("click", function() { 
    $(".item").unbind('click');
    alert(this.id);
});

我尝试实现的是单击div将div id加载为位置,同时单击div内部的链接会阻止div点击行为。

我知道我可以将href从div中取出但我不想要那个; - )

1 个答案:

答案 0 :(得分:4)

<强>已更新

如果可以的话,使用jQuery 1.7使用.on进行事件委派,并停止传播的锚点击次数:

$(document).on("click","a.test", function(e) { 
    e.stopImmediatePropagation();
});

$(document).on("click","div.item", function(e) { 
    // whatever
});

http://jsfiddle.net/AuHjA/3/

否则请使用.delegate代替.live

$(document).delegate("a.test", "click", function(e) { 
    e.stopPropagation();
});

$(document).delegate("div.item", "click", function(e) { 
    //whatever
});

http://jsfiddle.net/mblase75/AuHjA/4/