4

我目前正在设计一个应用程序,在该应用程序中,除了一个 CSS 文件和 JS 文件之外,我无法访问标记或脚本,因此我可以添加自己的样式和功能。我知道这不是一个理想的设置,但相信我,这不是我的选择。哦,这个网站上的所有内容都是通过 AJAX 请求生成的,很好。

无论如何,问题是我有很多需要运行的 Javascript,$(document).ready();但是由于页面从未真正重新加载(由于 AJAX),因此没有任何代码被执行。

$(document).ready();有没有一种方法可以在每次 AJAX 调用完成时将所有函数设置为运行?

我在下面包含了内置的 AJAX 调用(我无法编辑)。

$.ajax({
  type: "POST",
  dataType: "html",
  url: url1,
  data: pars,
  success: function(data)
  {
    $('#thisContent').html(data);
    loadMenu(urlToLoad);
  } 
});
4

3 回答 3

4

是的,您可以为.ajaxComplete(). 在每次 ajax 调用完成后调用它(成功或出错)。

进一步阅读:Ajax 事件

于 2012-10-11T11:05:27.630 回答
2

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

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

但是,就个人而言,我建议您考虑一下。例如,如果$.ajaxreadyHandler函数中进行调用,您将创建死锁。您也很可能一遍又一遍地进行相同的绑定。我不知道你想要达到什么目标,但我很确定有更好的方法来做到这一点。(如果我确实正确理解了您的问题)

于 2012-10-11T11:14:58.657 回答
1

我认为对你有用。

于 2012-10-11T11:07:01.467 回答