我有以下代码,它应该检查是否加载了jQuery,并避免运行我的jQuery函数,直到它被加载。
它似乎不起作用,我认为Timeout函数没有运行或通过它传递正确的函数(runwhenjqueryloaded)。
我花了更多的时间来预算客户的预算,所以任何快速的帮助都会非常感激。谢谢!
function runwhenjqueryloaded(){
if (window.jQuery) {
console.log("jquery rocks");
//jquery exists, do what you want
$(function() {
$('.flexslider').flexslider({
animation: "slide",
animationSpeed: 400,
animationLoop: false,
itemWidth: 210,
itemMargin: 5,
minItems: 1,
maxItems: 4
});
});
} else {
setTimeout(function() {runwhenjqueryloaded(); }, 60);
}
}
runwhenjqueryloaded();
答案 0 :(得分:0)
setTimeout在你的代码中运行得很好,但是你可以把它写得更简单:
setTimeout(runwhenjqueryloaded,60)
Aren你在其他地方有错误吗? 尝试在runwhenjqueryloaded()的开头调试或放置一个console.log,然后在" else"之后调试另一个。
答案 1 :(得分:0)
You can use setInterval instead.
function bootstrap($) {
$(function() {
$('.flexslider').flexslider({
animation: "slide",
animationSpeed: 400,
animationLoop: false,
itemWidth: 210,
itemMargin: 5,
minItems: 1,
maxItems: 4
});
});
}
var jqCheck = setInterval(function() {
if (window.jQuery !== undefined) {
bootstrap(window.jQuery);
clearInterval(jqCheck);
}
}, 60);