對不起僞代碼,但我不能在這裏發佈原始代碼(公司政策)。模塊模式,jquery回調問題;
我在JavaScript中有兩個「類」,CLS2類用於填充來自服務器(實際上它是一個表)的HTML的DIV。我正在使用jQuery中的方法LOAD。
CLS1類調用CLS2加載HTML表,並嘗試從jQuery方法FIND獲取表中的某些信息。
我知道發生了什麼事。當我嘗試在表格中獲取這些信息時,我無法做到這一點,因爲HTML表格還沒有準備好。
但是,如果我使用jquery方法時,我猜,我應該能夠做到這一點。但目前它還沒有起作用。
如果我在jquery LOAD方法上使用回調一切正常,但是當我使用時,它不是等待HTML表準備就緒。
我忘了什麼嗎?
我從jquery LOAD方法返回。如果內容準備就緒,是否可以檢查此回報? console.log(retParam);
CLS2:
var cls2 = (function ($) {
return {
load: function() {
return this.populateDiv();
},
populateDiv: function() {
var ret = $('#content').load('url', function(){
// IF I USE THE JQUERY METHOD FIND HERE WORKS FINE
});
return ret;
}
};
}(jQuery));
CLS1:
var cls1 = (function ($) {
return {
init: function(){
this.config();
},
config: function() {
$.when(cls2.load()).then(this.doPagination());
},
doPagination: function(retParam) {
console.log(retParam);
var val = $('#datatable').find('.tdActive').val();
}
};
}(jQuery));
JQUERY準備
$(document).ready(){
cls1.init();
}
你包裝這兩個匿名函數,使得它們在加載時執行。嘗試分配'var CLS1 = {init:...,config:...,doPagination:...}; var CLS2 = {init:...,populateDiv:...}'另外,是否有可能在'jQuery'定義之前將它們包含在頁面中? –