我使用jQuery Loader插件来加载文件on demand- 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环境中对此进行测试。
发布于 2011-02-26 01:47:07
使用alert()阻止代码执行的可能原因是,当JavaScript执行停止(包括时间间隔和超时)时,外部资源(JS、CSS、图像和xmlhttprequests)可能会完成加载。但是,在alert()之后的代码完成之前,这些外部脚本都不会运行,也不会触发任何DOM事件。
当alert()发挥作用时的一个例子:http://jsfiddle.net/p9Nff/
发布于 2011-02-26 01:54:33
这是一个与异步有关的问题,你有没有尝试强制异步为false?
当警报打开时,脚本有时间加载您的插件。或者就像Alexey说的,你的DOM还没准备好,把你的代码放到$(function(){ /code here/ })中;
https://stackoverflow.com/questions/5120430
复制相似问题