代码之家  ›  专栏  ›  技术社区  ›  Mario Awad

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

  •  2
  • Mario Awad  · 技术社区  · 16 年前

    各位jquery黑客,您好:—)

    假设您有以下代码:

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

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

    如何告诉jquery重新选择具有“links”类的所有元素,并对它们应用上述函数?这能自动化吗?

    谢谢。

    1 回复  |  直到 16 年前
        1
  •  10
  •   karim79    16 年前

    您将要使用事件委派:

    $('.links').live("click",function(){
        //Do something
    });
    

    这将阻止使用类动态插入元素 links 失去了他们的点击事件处理程序。请注意,您还需要 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);