我需要在onclick事件的javascript中顺序调用两个函数(逐个表示)。
要求是从后端获取数据,然后使单元格突出显示。 下面的代码片段用于此:
cell1.onclick=function() {
getData("FileName");
setTimeout("setHighlight('FileName')", 500);
};
目前我使用setTimeout
在延迟500毫秒后调用第二种方法。
上面代码的问题是如果getData
方法从后端获取数据的时间超过500毫秒,那么在这种情况下,单元格不会突出显示。
有没有办法做到这一点?
由于 Jyoti
答案 0 :(得分:7)
要从后端获取数据,您可能正在使用AJAX。
在回调函数中,您填充数据。完成此步骤后,调用高亮显示功能。
你可能有这样的事情:
xmlHttp.onreadystatechange = function()
{
if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
{
// do something with the response here
highlightData(); //<---- the function to highlight data
}
}
答案 1 :(得分:2)
您应该为getData添加另一个参数,这是一个在您拥有数据时执行的函数。所以,
function getData(filename, callback) {
// get the data
// when you have the data, do callback(filename);
}
然后你可以做
getData("FileName", setHighlight);