我正在使用jQuery Loader插件按需加载文件 - tagit插件。
问题是,如果我在加载时触发的回调函数中添加alert
,则加载的插件似乎有效,如果我删除了alert
,插件就会失败。
任何想法为什么会发生这种情况?
$(document).ready(function(){
$("#mytags").Loader(
{
url: [
'media/plugins/tagit/css/jquery-ui/jquery.ui.autocomplete.custom.css',
'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.min.js',
'media/plugins/tagit/js/jquery-ui/jquery-ui-1.8.autocomplete.min.js',
'media/plugins/tagit/js/tag-it.js'
],
success: function(target) {
//alert('loaded');
$(target).tagit({
availableTags: ["tag1","tag2", "tag3"],
values: ["tag2"]
});
}
}
});
我在我的本地XAMP环境中测试它。
答案 0 :(得分:1)
使用alert()阻止代码执行的可能原因是,当JavaScript执行停止(包括间隔和超时)时,外部资源(JS,CSS,图像和xmlhttprequests)可能会完成加载。但是,再一次,在alert()之后的代码完成之前,这些外部脚本都不会运行,也不会触发任何DOM事件。
alert()产生影响的示例:http://jsfiddle.net/p9Nff/
答案 1 :(得分:0)
它与async有关,你是否试图强制async为false?
当警报打开时,脚本有时间加载插件。或者是Alexey所说的,你的DOM还没有准备好,把你的代码放到$(function(){/ 代码 /});