创建DOM元素时运行函数

时间:2010-03-09 10:45:11

标签: asp.net jquery dom-manipulation

我希望将事件绑定到某个类和ID,以便在DOM中创建匹配对象。

我这样做是因为我在ASP UpdatePanel中有一些jQuery代码,导致DOM在其部分回发上重新加载。我已经使用live()重置了事件,但是我需要在创建元素后立即调用2行初始化函数。

有没有办法将它附加到live()或其他一些jQuery函数,还是我必须自己编写代码来执行此操作?

谢谢,Ed

2 个答案:

答案 0 :(得分:1)

如果您正在使用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加载时运行。只需在document.ready中添加对myFunction();的调用,如果您需要它也可以在加载时运行。

答案 1 :(得分:1)

只要将节点添加到DOM,就会触发DOMNodeInserted事件。让文档正文听取此事件,并在触发时,在插入的节点中搜索您正在查找的类和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