首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery live()和stopPropagation()问题

jQuery live()和stopPropagation()问题
EN

Stack Overflow用户
提问于 2010-04-22 01:09:33
回答 2查看 2.2K关注 0票数 3

我知道live()事件处理事件冒泡的方式与所有其他jQuery事件不同。jQuery建议使用'return false',但在我的例子中不起作用。

问题是:

我有一个包含锚标签的DIV。

DIV是使用live()绑定的。每当我单击这个DIV中的锚标记时,它都会冒泡并调用DIV的事件。如果我将一个事件绑定到返回false A标记,它会阻止链接打开。在这种情况下,stopPropagation()或返回的结果都不是假的。还有没有别的选择?理想情况下,我希望保留live()事件。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-22 01:15:48

element.preventDefault();

stopPropagation将停止冒泡,而preventDefault将确保受影响元素的默认操作不会触发。

票数 5
EN

Stack Overflow用户

发布于 2010-04-22 01:25:01

只要你的锚点href指向一个url,这应该是可行的,如果它是一个javascript方法调用,不确定会发生什么-猜测是不好的。

代码语言: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
});

似乎有一种更优雅的方法可以做到这一点,但我不知道。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2685011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档