Javascript 在编程插入新内容后重新运行JQuery的选择器和操作

Javascript 在编程插入新内容后重新运行JQuery的选择器和操作,javascript,jquery,Javascript,Jquery,各位JQuery黑客,您好:- 假设您有以下代码: $('.links').click(function(){ //Do something } 然后我将动态内容插入到DIV的HTML内容中,例如,在单击按钮后,插入新内容。此内容包含链接类。问题是,单击按钮没有注册新插入的内容 我如何告诉JQuery重新选择带有links类的所有元素并对其应用上述函数?这能自动化吗 谢谢。您需要使用事件委派: $('.links').live("click",function(){ //Do

各位JQuery黑客,您好:-

假设您有以下代码:

$('.links').click(function(){
    //Do something
}
然后我将动态内容插入到DIV的HTML内容中,例如,在单击按钮后,插入新内容。此内容包含链接类。问题是,单击按钮没有注册新插入的内容

我如何告诉JQuery重新选择带有links类的所有元素并对其应用上述函数?这能自动化吗


谢谢。

您需要使用事件委派:

$('.links').live("click",function(){
    //Do something
});
这将防止带有类链接的动态插入元素丢失其单击事件处理程序。注意,您还需要jQuery1.3或更高版本才能工作。 看

另一种方法是使用您选择使用的jQuery方法的回调重新绑定,例如:

$('#someDiv').load('page.html', function() {
    $('.links').click(function(){
        //Do something
    });
});
或者更整洁:

function initLinks() {
    $('.links').click(function(){
        //Do something
    }
}

$('#someDiv').load('page.html',initLinks);

警告:与FF一起使用live时出错。如果你用鼠标右键点击某个东西,那么。lived将被视为左键点击。除此之外,使用上面的我自己也投票了,我只是想为你提供额外的信息哇,很好地捕捉到了这个bug!解决方法是过滤鼠标左键点击:functione{if e.button==0{//0=left,1=middle,2=right}