0

通过 ajax 调用内容时(使用 jQuery) - 如果在 ajax 加载的内容中有 ajax 交互,是否应该在该文件中再次调用 jQuery?如果有脚本/插件只能在 ajax 加载的内容中调用,它们应该只在 ajax 加载的内容中调用,还是在父文件中调用?

谢谢!

4

1 回答 1

1

对您的问题的简短回答是,我建议处理与原始 ajax 调用(或如您所说的“父”文件)中的 ajax 加载内容相关的任何内容。鉴于您没有发布任何代码,我不能使用任何特定于您的场景的示例,但是您想要执行以下操作:

$.ajax({
  url: "/foo",
  success: function(response) {
    do_something_related_to_this_content(response);
  }
});

do_something_related_to_this_content = function(response){
    // This function contains the code you originally 
    // wanted to put in the ajax-loaded content.
}

如果您要将您的 javascript 放在 ajax 加载的内容中,我会担心的一个问题是您的 ajax 加载脚本可能具有假定存在于“父”文件中的依赖项,但是如果这种情况发生变化(IE 你加载您的 ajax 内容在完全不同的上下文中),突然您的代码中断了。

此外,如果您多次重新加载相同的内容,您的 ajax 加载代码将被多次加载。

最后,作为记忆服务,如果您的代码在一个<script>块内,我不相信它会在通过 AJAX 加载时自动被调用(试图具体找出这一点......等待)

希望这是有道理的。

编辑

关于<script>块加载,请查看这个答案,它证实了我写的内容。您必须对<script>块内容执行 eval() 。

于 2013-03-19T18:05:26.670 回答