ajaxがアニメーション "読み込み中" gifのライトボックスを表示している間、一般的なajaxローダを作成しようとしています。Javascriptスコープの問題
私はスコープにいくつか問題があります。
コードは次のとおりです。
var t=setTimeout("s.d.dialog('destroy')" ,(s.o.msgTime*1000));
エラーは次のとおりです。"Uncaught ReferenceError: s is not defined"
;(function ($) {
$.loader = function (data, options) {
return $.loader.impl.init(data, options);
};
$.loader.close = function (data) {
$.loader.impl.close(data);
};
$.loader.create = function() {
$.loader.impl.create();
};
$.loader.defaults = {
appendTo: 'body',
autoCreate: true,
msgTime: 5,
};
$.loader.impl = {
d: {},
init: function(data, options){
var s = this;
s.o = $.extend({}, $.loader.defaults, options);
if ((typeof data === 'object')&&!(data instanceof jQuery)&&data.url) {
data.success = function(data, textStatus, jqXHR){ $.loader.close(); }
data.error = function(jqXHR, textStatus, errorThrown){ $.loader.close('Error accessing server'); }
$.ajax(data);
}else if(s.o.autoCreate){
s.create();
}
return s;
},
create: function() {
var s = this;
s.d = $('<div id="dialog" style="display:hidden"><span style="width: 100%" id="loading_diag"><center><img src="http://www.mydomain.com/images/ajax-loader.gif" /></center></span></div>').appendTo(s.o.appendTo);
s.d.dialog({ title: 'Loading ...', dialogClass: 'noTitleStuff', modal: true, draggable: false, resizable: false });
},
close: function(data)
{
var s = this;
//alert(typeof s.d);
if ((typeof data === 'string')&&data) {
$("#loading_diag").hide();
$("#dialog").html(data);
var t=setTimeout("s.d.dialog('destroy')" ,(s.o.msgTime*1000));
}else{
s.d.dialog("destroy");
}
s.d= {};
},
};
})(jQuery);
誰もが共有してくださいそれを解決する方法を知っていれば。
第一及び第二の溶液は、何かをしたが、それを完全に固定しhaventは、 は、今私は別のエラーを取得しています:「キャッチされない例外TypeErrorを:オブジェクト#は何の方法]ダイアログ '$ .loader.impl.close.sdありません」
を
:「キャッチされない例外TypeError:オブジェクト#
@user' dialog'とは何ですか?そしてそれはどこに定義されていますか? –