jquery:如果警报不存在,on demand插件加载失败

时间:2011-02-25 17:20:16

标签: javascript jquery jquery-plugins

我正在使用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环境中测试它。

2 个答案:

答案 0 :(得分:1)

使用alert()阻止代码执行的可能原因是,当JavaScript执行停止(包括间隔和超时)时,外部资源(JS,CSS,图像和xmlhttprequests)可能会完成加载。但是,再一次,在alert()之后的代码完成之前,这些外部脚本都不会运行,也不会触发任何DOM事件。

alert()产生影响的示例:http://jsfiddle.net/p9Nff/

答案 1 :(得分:0)

它与async有关,你是否试图强制async为false?

当警报打开时,脚本有时间加载插件。或者是Alexey所说的,你的DOM还没有准备好,把你的代码放到$(function(){/ 代码 /});