代码之家  ›  专栏  ›  技术社区  ›  eozzy

使用$.Ajax时出现问题

  •  2
  • eozzy  · 技术社区  · 15 年前

    我只想在满足某个条件时加载lightbox javascript,所以我使用$.ajax加载它,如下所示:

    $.ajax({ url: "../static/js/lightbox.js", dataType: 'script', cache: true, success: function() {
        alert('loaded');
        $("a.lightbox").lightbox({
            opacity: "0.6",
            width: "940"
        });
    }});
    

    我看到“已加载”警报,但灯箱不工作。但是,当我直接从HTML加载文件(script src)时,lightbox工作。我该怎么解决这个问题?

    非常感谢你的帮助。

    3 回复  |  直到 15 年前
        1
  •  4
  •   Nick Craver    15 年前

    你会想用的 $.getScript() 为此(更短,但缓存效果稍有不同),例如:

    $.getScript("../static/js/lightbox.js", function() {
      $("a.lightbox").lightbox({
        opacity: "0.6",
        width: "940"
      });
    });
    
        2
  •  1
  •   Atanas Korchev    15 年前

    脚本下载是否正确?你看到“已加载”警报了吗?如果我是你,我会在lightbox.js中放置一个警报,查看下载后是否正确执行。还要检查javascript错误。

        3
  •  0
  •   Abdel Raoof Olakara    15 年前

    问题是JS仍然不是DOM的一部分。得到lightbox.js是正确的,但它还没有准备好执行。要动态获取JS文件,必须使用getscript方法而不是ajax。看看API: http://api.jquery.com/jQuery.getScript/