我想在 DOM 中创建匹配对象时将事件绑定到某个类和 ID。
我这样做是因为我在 ASP UpdatePanel 中有一些 jQuery 代码,这会导致 DOM 在其部分回发时重新加载。我已经使用 live() 重置了事件,但是我需要在创建元素后立即调用 2 行初始化函数。
有什么方法可以将它附加到 live() 或其他一些 jQuery 函数,还是我必须自己编写代码来执行此操作?
谢谢,埃德
我想在 DOM 中创建匹配对象时将事件绑定到某个类和 ID。
我这样做是因为我在 ASP UpdatePanel 中有一些 jQuery 代码,这会导致 DOM 在其部分回发时重新加载。我已经使用 live() 重置了事件,但是我需要在创建元素后立即调用 2 行初始化函数。
有什么方法可以将它附加到 live() 或其他一些 jQuery 函数,还是我必须自己编写代码来执行此操作?
谢谢,埃德
如果您使用的是 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 中添加一个调用。
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 突变事件的更多信息。