在按钮单击处理程序上,我通过更改按钮的类来更改此按钮的外观。 就在那之后,我刷了一个包含数千件物品的清单,这需要一点时间(大约半秒钟)
我的问题是由于后面的漫长过程,按钮的外观不会立即更改。 (如果我删除后面的过程,则立即进行更改)
那么,是否有一种方法可以在完成其余功能之前强制执行第一条指令(更改按钮的外观)。
this.stopLoading = function (){
this.isLoading = false;
this.updateButtonLoading();
this.updateObservers();
this.endUpdate();//if i remove this the aspect of the button is changed immediatly
}
this.updateButtonLoading = function(){
if(oSvdQueryList.curSvdQuery == this){
$("#btnLoading").removeClass();
if (this.isLoading){
$("#btnLoading").addClass('stopLoading');
$("#btnLoading").bind('click', function (){ oSvdQueryList.curSvdQuery.stopLoading(); });
}else
{
$("#btnLoading").addClass('startLoading');
$("#btnLoading").bind('click', function (){ oSvdQueryList.curSvdQuery.startLoading(); });
}
}
this.endUpdate = function(){
this.fUpdate --;
if (this.fUpdate == 0 ){
setTimeout((function(self) {
return function() { self.displayNewRecords() };
})(this), 1);
}
}
this.displayNewRecords = function(){
if ($.mobile.activePage.is("#DspQry") && oSvdQueryList.curSvdQuery == this ){
for(var i= this.nbDisplayed; i< this.nbRecords;i++){
addItem(this,i);
}
$("#ListDspQry").listview("refresh");
}
}
function addItem(oSvdQuery,index){
var html = '<li><a href="javascript:showDetails(' + (index) +')">';
var oRecord = [];
for (i=0;i<oSvdQuery.fields.length;i++){
if ( oSvdQuery.fields[i].hidden !="Y") {
oField = oSvdQuery.fields[i];
oRecord= oSvdQuery.allValues[index];
html = html + oField.name + ' : ' + oRecord[oField.name] + '<br>';
}
}
html = html + '</a></li>';
$("#ListDspQry").append(html);
oSvdQuery.nbDisplayed ++;
}