我想只在满足某个条件时加载灯箱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)时,灯箱工作。我该如何解决这个问题?
非常感谢你的帮助。
答案 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/