0

我正在构建一个 Web 应用程序,一段时间以来它一直困扰着我,当我通过 ajax 将 HTML 加载到我的页面中时,我需要在 $(document).ready() 中刷新我的函数。

例如,假设我有这个:

$(document).ready(function () {

    $('#searchInput').keyup(function () {
        // Do something
    });

});

但是,当加载 DOM 时,没有加载带有 id="searchInput" 的输​​入字段 - 它稍后会在用户单击特定元素时使用 ajax 加载。现在我的 id="searchInput" 输入字段已加载,但 keyup(function) 不听#searchInput,因为它没有加载到原始 DOM 中。

目前,我唯一的解决方案是这样做:

function loadEvents() {
    $('#searchInput').keyup(function () {
        // Do something
    });
}

$(document).ready(function () {
    loadEvents();
});

然后在 ajax 成功:

succes:
    function() {
        loadEvents();
    }

这行得通......但我不禁想到有一种更聪明的方法......

我的 loadEvents() 中有多个函数,对我来说,每次 ajax 调用成功时我似乎都不是重新加载所有函数的最佳解决方案?

当然,然后我可以进行许多不同的 ajax 调用,这些调用在 ajax 成功时会执行所需的特定功能,但随后我将不得不创建许多不同的 ajax 函数。

有没有更好的解决方案?

4

1 回答 1

0

您可以使用以下代码将所有成功回调代码合并到一个地方

$(selector).ajaxSuccess(function(event,xhr,options){
     //DO YOUR STUFF HERE
});

在http://api.jquery.com/ajaxSuccess/上查看更多信息

于 2012-10-16T21:50:57.010 回答