代码之家  ›  专栏  ›  技术社区  ›  Ed James

创建dom元素时运行函数

  •  0
  • Ed James  · 技术社区  · 16 年前

    当在dom中创建匹配对象时,我想将事件绑定到特定的类和id。

    我这样做是因为在asp updatepanel中有一些jquery代码,这会导致dom在其部分回发时被重新加载。我已经用live()重置了事件,但是我需要在创建元素后立即调用一个2行初始化函数。

    是否有任何方法将此附加到live()或其他jquery函数,或者我必须自己编写代码来完成此操作?

    谢谢,Ed

    2 回复  |  直到 16 年前
        1
  •  1
  •   Nick Craver    16 年前

    如果使用的是UpdatePanel,则可以编写一个名为:

    function pageLoad() { } //Called by ASP.Net javascript code
    

    每次页面最初加载和加载UpdatePanel内容时都会调用该函数,或者,您也可以通过执行以下操作来连接UpdatePanel返回时要运行的任何函数:

    $(document).ready(function() {
      Sys.WebForms.PageRequestManager.getInstance().add_endRequest(myFunction);
    });
    function myFunction() {
     //Do stuff with elements
    }
    

    注意,这不会运行第一页加载,只在updatepanel加载时运行。只需给 myFunction(); 在document.ready中,如果您也需要它在加载时运行。

        2
  •  1
  •   Anurag    16 年前

    DOMNodeInserted 每当向dom添加节点时,都会触发事件。让文档体监听此事件,并在触发时在插入的节点中搜索要查找的类和id选择器。

    $(document.body).bind("DOMNodeInserted", function(event) {
        // element is the newly inserted node
        var element = $(event.target);
        // if this element is of interest
        if($("<selector>", element).length > 0) {
            // run the initialization code here..
        }
    }
    

    阅读有关dom突变事件的更多信息 here

    推荐文章