我正在使用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版起已删除)和事件委托:

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


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

10-06 16:16