如何在jQuery中运行通过AJAX加载的DOM就绪函数

本文关键字:加载 AJAX DOM 函数 就绪 jQuery 运行 | 更新日期: 2023-09-27 18:06:03

我的公司有一个内置在ASP的web应用程序。. NET,他们已经要求我编写一个小部件的仪表板页面,他们已经有。这些小部件是在运行时动态加载的自定义用户控件。我的问题是,我有一些自定义的javascript,需要运行每次小部件加载。

$(function ()
{
    // Setup widget.
});

这在仪表板页面第一次加载时非常有效。我的DOM就绪函数运行了,一切正常。但是,当用户移动仪表板上的小部件时,所有小部件都在更新面板中,并且都使用AJAX重新加载。当DOM就绪的函数通过AJAX插入到页面中时,它们不会运行。

对于如何确保每次加载小部件时都运行此代码有什么建议吗?

如何在jQuery中运行通过AJAX加载的DOM就绪函数

我解决这个问题的方法是在加载时初始定义给定的事件绑定时命名它们。然后,在ajax的回调函数中取消这些事件,并为新创建的dom元素重新设置它们。

你可以不使用ASP。Net AJax pagload()函数?

解释它与$(document).Ready()的区别-> http://encosia.com/document-ready-and-pageload-are-not-the-same/

可以让每个小部件在其HTML写入DOM后调用setup函数。

当你做你的ajax调用返回函数执行你的设置代码

$.post(url, {/*data*/}, function() {
    // return function call
    // do setup code
});
编辑:

既然你没有控制,你可以有一个处理程序拦截ajax调用:

$(#your-widget-area).ajaxComplete(function(e, xhr, settings) {
});

你可以在这里找到文档:http://api.jquery.com/ajaxComplete/