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

时间:2013-05-18 17:55:51

标签: 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'); 
});

这怎么可能?

1 个答案:

答案 0 :(得分:2)

使用on()(如提及的@techfoobar,版本1.7中不推荐使用live(),版本1.9中已删除)以及动态生成内容时的事件委派:

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

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