我希望我的应用程序中的所有 AJAX 加载内容都由我的应用程序 JQuery 脚本进行评估,就像正常加载的内容一样。例如JQuery 扫描 AJAX 加载的选择器内容,例如“模态框链接”等。
我所有的 JavaScript 都在正常的 document.ready 中,它适用于正常的 HTTP 加载页面:
$(document).ready(function(){
// my apps javascript
});
我想使用 .ajaxComplete 之类的东西来重新运行 document.ready 中包含的所有内容,以便为 jquery 选择器评估新加载的 AJAX 内容。
$(document).ajaxComplete(function(){
// Re-run all my apps javascript
})
我可以在 .ajaxComplete 中放入一些代码来执行此操作吗?
希望这是有道理的,如果没有,请告诉我,我会编辑问题的详细信息。
最佳答案
您可以将document.ready
中的所有内容封装到一个函数中,然后再次调用该函数以重新绑定(bind)
或者...
更好的方法是利用 live()
和 delegate()
jQuery 方法,以便与这些选择器匹配的所有当前和 future 元素都将绑定(bind)到这些事件也是如此。
使用 live()
的例子:http://api.jquery.com/live/
$('.clickme').live('click', function() {
//all elements that exist now and elements added later
//with this class have this click event attached
});
使用 delegate()
的示例:http://api.jquery.com/delegate/
$("table").delegate("td", "hover", function(){
//all current and future td elements in all current tables
//have this hover event attached
});
关于javascript - 在 ajax 加载的内容上重新运行应用程序 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4742835/