2

我正在使用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'); 
});

这怎么可能?

4

1 回答 1

2

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

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

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

于 2013-05-18T17:58:27.203 回答