JQuery黑客,你好: - )
假设您有以下代码:
$('.links').click(function(){
//Do something
}
然后我将动态内容插入到DIV的HTML内容中(例如,在单击按钮后,插入新内容)。此内容具有“链接”类。问题是“点击”按钮没有注册新插入的内容。
如何告诉JQuery使用“links”类重新选择所有元素并对它们应用上述函数?这可以自动化吗?
感谢。
答案 0 :(得分:10)
您需要使用事件委派:
$('.links').live("click",function(){
//Do something
});
这将阻止动态插入的类links
的元素丢失其click事件处理程序。请注意,您还需要 jQuery 1.3或更高版本才能使用它。
请参阅Events/live。
另一种方法是使用您选择使用的jQuery的ajax方法的回调重新绑定,例如:
$('#someDiv').load('page.html', function() {
$('.links').click(function(){
//Do something
});
});
或更整洁:
function initLinks() {
$('.links').click(function(){
//Do something
}
}
$('#someDiv').load('page.html',initLinks);