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

Mar*_*wad 2 javascript jquery

JQuery黑客,你好:-)

假设您有以下代码:

$('.links').click(function(){
    //Do something
}
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢.

kar*_*m79 10

您将要使用事件委派:

$('.links').live("click",function(){
    //Do something
});
Run Code Online (Sandbox Code Playgroud)

这将阻止动态插入的元素与类links失去其click事件处理程序.请注意,您还需要jQuery 1.3或更高版本才能工作.查看活动/直播.

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

$('#someDiv').load('page.html', function() {
    $('.links').click(function(){
        //Do something
    });
});
Run Code Online (Sandbox Code Playgroud)

还是更整洁:

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

$('#someDiv').load('page.html',initLinks);
Run Code Online (Sandbox Code Playgroud)