我正在修复代码,但是由于javascript的异步特性而面临问题。
在给定的功能
function submitQuery() {
disableButton();
infoDisplay('DBQuery');
enableButton()
}
disableButton()
用于更改要禁用的图像,以使用户知道功能已启动infoDisplay()
是另一个在服务器上带有某些功能的函数。而启用按钮则用于恢复正常图标。
function disableButton() {
idBRQuerySubmitBtn.src='images/Button/Disabled/Retransmit_Message_Search.gif';
idQuerySubmitBtn.src='images/Button/Disabled/Database_Access_Search.gif';
idQueryResetBtn.src='images/Button/Disabled/Reset.gif';
}
function enableButton() {
alert('to check when it is fired');
idBRQuerySubmitBtn.src='images/Button/Normal/Retransmit_Message_Search.gif';
idQuerySubmitBtn.src='images/Button/Normal/Database_Access_Search.gif';
idQueryResetBtn.src='images/Button/Normal/Reset.gif';
}
在此,在完成infoDisplay()之前会触发
enableButton()
。如何确保在启动enableButton之前执行 infoDisplay()
。 最佳答案
我建议您在enableButton
中传递infoDisplay
作为回调函数。因此,将infoDisplay
函数修改为
function infoDisplay(parameter, callback) {
//Do something
if (callback && typeof(callback) === "function") {
callback();
}
}
调用功能如
infoDisplay('DBQuery', enableButton);