我知道live()事件处理事件冒泡的方式与所有其他jQuery事件不同。jQuery建议使用'return false',但在我的例子中不起作用。
问题是:
我有一个包含锚标签的DIV。
DIV是使用live()绑定的。每当我单击这个DIV中的锚标记时,它都会冒泡并调用DIV的事件。如果我将一个事件绑定到返回false A标记,它会阻止链接打开。在这种情况下,stopPropagation()或返回的结果都不是假的。还有没有别的选择?理想情况下,我希望保留live()事件。
发布于 2010-04-22 01:15:48
element.preventDefault();
stopPropagation将停止冒泡,而preventDefault将确保受影响元素的默认操作不会触发。
发布于 2010-04-22 01:25:01
只要你的锚点href指向一个url,这应该是可行的,如果它是一个javascript方法调用,不确定会发生什么-猜测是不好的。
$("#the-div").live('click', function (e) {
var tag = e.target.tagName;
if (tag === "A") {
window.location.href = e.target.href;
return false;
}
// else do the div click handling
});
似乎有一种更优雅的方法可以做到这一点,但我不知道。
https://stackoverflow.com/questions/2685011
复制相似问题