[英]jquery: on demand plugin loading fails if alert not present
我正在使用jQuery Loader插件按需加載標簽文件。
問題是,如果我向加載時觸發的回調函數添加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環境中對此進行了測試。
使用alert()阻止代碼執行有幫助的可能原因是,盡管JavaScript執行停止(包括間隔和超時),但是外部資源(JS,CSS,圖像和xmlhttprequests)可能會完成加載。 但是,再次提醒,直到alert()之后的代碼完成,這些外部腳本都不會運行,也不會觸發DOM事件。
alert()有所作為的一個示例: http : //jsfiddle.net/p9Nff/
這大概與異步有關,您是否嘗試將異步設置為false?
當警報打開時,腳本有時間加載您的插件。 或者這就是Alexey所說的,您的DOM還沒有准備好,請將您的代碼放入$(function(){/ code here /});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.