重新载入$(文件).ready();加载AJAX时的函数

时间:2012-10-11 11:02:02

标签: javascript ajax jquery

我正在为一个应用程序设置外观,除了一个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);
  } 
});

3 个答案:

答案 0 :(得分:4)

是的,您可以为.ajaxComplete()添加处理程序。每次ajax调用完成后(成功或出错)都会调用它。

进一步阅读:Ajax Events

答案 1 :(得分:2)

如果您想要的是再次调用$(document).ready([handler])事件的处理程序,您可以使用命名函数作为处理程序,并引用:

$(document).ready(function readyHandler()
{
});
//and:
$.ajax({....,success:readyHandler});

但是,就个人而言,我建议你考虑一下。例如,如果在$.ajax函数中进行了readyHandler调用,那么您将创建一个死锁。你也很可能一遍又一遍地做出同样的约束。我不知道你想要实现什么,但我很确定有更好的方法。 (如果我确实理解你的问题)

答案 2 :(得分:1)

我认为this对您有用。