我正在使用getscript()为我的图片库加载一些脚本。只要我点击图库,这段代码就会运行:
$(function () {
$(window).hashchange(function () {
$(document).ready(function () {
$('#nav li a').click(function () {
$('#content-wrap').load(toLoad, showNewContent);
function showNewContent() {
if ($('#content-wrap').is(':empty')) {
return false;
} else {
if (window.location.hash == "#photos") {
alert("soundswaste1");
$.getScript("galleria/galleria-1.2.8.min.js");
$.getScript("galleria/themes/classic/galleria.classic.min.js", getGalleria);
function getGalleria() {
alert("soundswaste2");
$.getScript("galleria.js");
}
}
$('#content-wrap').fadeIn(500).css("display", "block");
}
return false;
});
});
});
});
首先我转到chrome控制台 - >右键单击网络选项卡 - >清除浏览器缓存 - >刷新页面 - >并点击照片。 我得到警报“soundswaste1”,效果不会运行。图像只是在页面上排成一行。
然后我再次点击“照片”,我同时收到两个警报,每个警告两次。 2个问题:
为什么清除缓存会阻止第一次加载所有脚本。是因为它们位于不同的路径上吗?
为什么我第二次收到两次的提醒?
答案 0 :(得分:1)
我猜galleria.classic.min.js
取决于galleria-1.2.8.js
在第一次加载时,你试图一个接一个地加载它们,
但是,确保当加载第二个脚本时,第一个脚本完成加载。
所以在第一个的success
上加载第二个,如下所示:
$(document).ready(function () {
$('#nav li a').click(function () {
$('#content-wrap').load(toLoad, showNewContent);
function showNewContent() {
if ($('#content-wrap').is(':empty')) {
return false;
} else {
if (window.location.hash == "#photos") {
alert("soundswaste1");
$.getScript("galleria/galleria-1.2.8.min.js",
function () {
$.getScript("galleria/themes/classic/galleria.classic.min.js",
function () {
alert("soundswaste2");
$.getScript("galleria.js");
});
});
}
$('#content-wrap').fadeIn(500).css("display", "block");
}
return false;
});
});