jquery - 实时处理不适用于 event.stopPropagation();

标签 jquery live stoppropagation

我正在使用 event.stopPropagation(),但在父级上使用 .live() 处理程序时遇到问题。

//does not work
$("#testlink").live({ 
    click: function(event) 
    { 
        alert('testlink'); 
    } 
}); 

//works great! 
$("#testlink").click(function() { 
  alert('testlink'); 
});

我必须使用 .live() 因为内容是通过 AJAX 加载的。

有人可以帮我解决这个问题吗?


我怎样才能使用更多这样的类或ID?

$('#div1', '#div2', '#div3').on('click', 'a.testlink', function(){
   alert('testlink'); 
});

这怎么可能?

最佳答案

使用on() (正如 @techfoobar 提到的, live() 在版本 1.7 中已弃用,并从版本 1.9 起删除)和事件委托(delegate)(如果内容是动态生成的):

$('#container').on('click', '#testlink', function(){
   alert('testlink'); 
});

其中 #container 是包含动态加载的 #testLink 元素的元素(您可以使用 document,但此处使用容器元素会减少搜索范围并提高效率)。

关于jquery - 实时处理不适用于 event.stopPropagation();,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16627308/

相关文章:

wordpress - 将 WordPress 本地迁移到实时,图像链接指向本地主机 - 无法纠正

页面加载后上传 jQuery 文件

jquery - 如何在ajax加载的元素上绑定(bind)事件

jquery - jquery选择性停止传播

flash - 仅在 Flash 中通过鼠标滚轮滚动。通过鼠标滚轮防止默认浏览器滚动

php - $.post 在针对简单 php 时返回对象

jquery - Bootstrap 事件菜单不起作用

javascript - 在源文件之前在 Jasmine on Rails 3.1 插件上加载 jQuery

javascript - 样式 选择与所选选项具有相同样式的元素

javascript - 为什么此 jQuery 代码仅适用于一次迭代?