使用$ .ajax的问题

时间:2010-05-22 13:08:44

标签: javascript jquery ajax load 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直接加载文件(脚本src)时,灯箱工作。我该如何解决这个问题?

非常感谢你的帮助。

3 个答案:

答案 0 :(得分:4)

您需要使用$.getScript()(更短但略有不同的缓存效果),例如:

$.getScript("../static/js/lightbox.js", function() {
  $("a.lightbox").lightbox({
    opacity: "0.6",
    width: "940"
  });
});

答案 1 :(得分:1)

脚本是否正确下载?你看到'加载'警报了吗?如果我是你,我会在lightbox.js中发出警报,看看下载后是否正确执行。还要检查JavaScript错误。

答案 2 :(得分:0)

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