为什么我的 jQuery .done 函数在 .when 代码之后没有触发?
Why does my jQuery .done function not fire after .when code?
我尝试用 jQuery 加载一些脚本,下载完成后我想执行一些代码。
我原以为 alert(1)
会被叫到,但什么也没发生。脚本已正确下载(已在 console
中检查)。
$.when(
$.getScript ("/framework/static/libs/ckeditor/ckeditor/ckeditor.js"),
$.getScript ("/framework/static/libs/ckeditor/ckeditor/config.js"),
$.getScript ("/framework/static/libs/ckeditor/ckeditor/skins/bootstrapck/editor_gecko.css"),
$.getScript ("/framework/static/libs/ckeditor/ckeditor/lang/de.js"),
$.getScript ("/framework/static/libs/ckeditor/ckeditor/adapters/jquery.js"),
$.Deferred(function( deferred ){$( deferred.resolve );})
).done(function() {
alert (1);
});
我希望问题在下面一行。
$.getScript ("/framework/static/libs/ckeditor/ckeditor/skins/bootstrapck/editor_gecko.css")
如您在 documentation 中所见,它使用 GET HTTP 请求从服务器加载 JavaScript 文件,然后执行它。
对于 css 个文件,您必须使用下面的代码。
window.getStyle = function(file) {
var top = $('head > link[rel=stylesheet]').length ? $('head > link[rel=stylesheet]:last') : $('head > *:last');
top.after('<link rel="stylesheet" type="text/css" href="' + file + '">');
};
$.when(
$.getScript("/framework/static/libs/ckeditor/ckeditor/ckeditor.js"),
$.getScript("/framework/static/libs/ckeditor/ckeditor/config.js"), window.getStyle("/framework/static/libs/ckeditor/ckeditor/skins/bootstrapck/editor_gecko.css"),
$.getScript("/framework/static/libs/ckeditor/ckeditor/lang/de.js"),
$.getScript("/framework/static/libs/ckeditor/ckeditor/adapters/jquery.js"),
$.Deferred(function(deferred) {
$(deferred.resolve);
})
).done(function() {
alert(1);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
我尝试用 jQuery 加载一些脚本,下载完成后我想执行一些代码。
我原以为 alert(1)
会被叫到,但什么也没发生。脚本已正确下载(已在 console
中检查)。
$.when(
$.getScript ("/framework/static/libs/ckeditor/ckeditor/ckeditor.js"),
$.getScript ("/framework/static/libs/ckeditor/ckeditor/config.js"),
$.getScript ("/framework/static/libs/ckeditor/ckeditor/skins/bootstrapck/editor_gecko.css"),
$.getScript ("/framework/static/libs/ckeditor/ckeditor/lang/de.js"),
$.getScript ("/framework/static/libs/ckeditor/ckeditor/adapters/jquery.js"),
$.Deferred(function( deferred ){$( deferred.resolve );})
).done(function() {
alert (1);
});
我希望问题在下面一行。
$.getScript ("/framework/static/libs/ckeditor/ckeditor/skins/bootstrapck/editor_gecko.css")
如您在 documentation 中所见,它使用 GET HTTP 请求从服务器加载 JavaScript 文件,然后执行它。
对于 css 个文件,您必须使用下面的代码。
window.getStyle = function(file) {
var top = $('head > link[rel=stylesheet]').length ? $('head > link[rel=stylesheet]:last') : $('head > *:last');
top.after('<link rel="stylesheet" type="text/css" href="' + file + '">');
};
$.when(
$.getScript("/framework/static/libs/ckeditor/ckeditor/ckeditor.js"),
$.getScript("/framework/static/libs/ckeditor/ckeditor/config.js"), window.getStyle("/framework/static/libs/ckeditor/ckeditor/skins/bootstrapck/editor_gecko.css"),
$.getScript("/framework/static/libs/ckeditor/ckeditor/lang/de.js"),
$.getScript("/framework/static/libs/ckeditor/ckeditor/adapters/jquery.js"),
$.Deferred(function(deferred) {
$(deferred.resolve);
})
).done(function() {
alert(1);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>