我正在为一个应用程序设置外观,除了一个CSS文件和JS文件之外我无法访问标记或脚本,因此我可以添加自己的样式和函数。我知道这不是一个理想的设置,但相信我这不是我的选择。哦,这个网站上的所有内容都是通过AJAX请求生成的,很好。
无论如何,问题是我有很多需要在$(document).ready();
上运行的Javascript,但由于页面从未真正重新加载(由于AJAX),所以没有任何代码被执行。
有没有办法可以设置$(document).ready();
中的所有函数在每次AJAX调用完成时运行?
我在下面包含了内置的AJAX调用(我无法编辑)。
$.ajax({
type: "POST",
dataType: "html",
url: url1,
data: pars,
success: function(data)
{
$('#thisContent').html(data);
loadMenu(urlToLoad);
}
});
答案 0 :(得分:4)
是的,您可以为.ajaxComplete()
添加处理程序。每次ajax调用完成后(成功或出错)都会调用它。
进一步阅读:Ajax Events
答案 1 :(得分:2)
如果您想要的是再次调用$(document).ready([handler])
事件的处理程序,您可以使用命名函数作为处理程序,并引用:
$(document).ready(function readyHandler()
{
});
//and:
$.ajax({....,success:readyHandler});
但是,就个人而言,我建议你考虑一下。例如,如果在$.ajax
函数中进行了readyHandler
调用,那么您将创建一个死锁。你也很可能一遍又一遍地做出同样的约束。我不知道你想要实现什么,但我很确定有更好的方法。 (如果我确实理解你的问题)
答案 2 :(得分:1)
我认为this对您有用。