我正在构建一个 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 函数。
有没有更好的解决方案?