我正在构建一个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函数。
那里有更好的解决方案吗?
答案 0 :(得分:0)
您可以使用以下代码在一个地方合并所有成功回调代码
$(selector).ajaxSuccess(function(event,xhr,options){
//DO YOUR STUFF HERE
});
了解详情