如何在onclick事件上按顺序调用javascript方法

时间:2010-10-20 10:16:54

标签: javascript html

我需要在onclick事件的javascript中顺序调用两个函数(逐个表示)。

要求是从后端获取数据,然后使单元格突出显示。 下面的代码片段用于此:

cell1.onclick=function() {
    getData("FileName");
    setTimeout("setHighlight('FileName')", 500);
};

目前我使用setTimeout在延迟500毫秒后调用第二种方法。

上面代码的问题是如果getData方法从后端获取数据的时间超过500毫秒,那么在这种情况下,单元格不会突出显示。

有没有办法做到这一点?

由于 Jyoti

2 个答案:

答案 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);