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

时间:2009-08-25 14:05:44

标签: javascript jquery

JQuery黑客,你好: - )

假设您有以下代码:

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

然后我将动态内容插入到DIV的HTML内容中(例如,在单击按钮后,插入新内容)。此内容具有“链接”类。问题是“点击”按钮没有注册新插入的内容。

如何告诉JQuery使用“links”类重新选择所有元素并对它们应用上述函数?这可以自动化吗?

感谢。

1 个答案:

答案 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);