如何通过AJAX加载jQuery中的DOM ready函数?

时间:2011-08-19 16:00:53

标签: c# javascript jquery asp.net ajax

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

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

首次加载仪表板页面时,此功能非常有用。我的DOM就绪功能运行,一切都很好。但是,每当用户在其仪表板上移动小部件时,所有小部件都在更新面板中,并且它们都使用AJAX重新加载。 DOM ready函数在通过AJAX插入页面时不会运行。

有关如何确保在每次加载窗口小部件时都运行此代码的任何建议吗?

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

你能否使用ASP.Net AJax pageLoad()函数?

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

当您执行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/