我正在使用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
,但在此处使用容器元素会缩小搜索范围并提高效率)。