2010-10-20 50 views
1

我需要在onclick事件中按順序調用兩個函數(意味着一個接一個地)。如何在onclick事件上按順序調用javascript方法

要求是從後端獲取數據,然後使單元格突出顯示。 下面的代碼段用於此:

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

目前我使用的setTimeout調用的500毫秒的延遲後的第二個方法。

上述代碼的問題是如果getData方法需要超過500ms從後端獲取數據,那麼在這種情況下,單元格不會突出顯示。

有沒有辦法做到這一點?

感謝 喬蒂

回答

2

您應該另一個參數添加到的getData,這是當你有數據來執行功能。所以,

function getData(filename, callback) { 
    // get the data 
    // when you have the data, do callback(filename); 
} 

那麼你可以做

getData("FileName", setHighlight); 
7

要從後臺獲取數據,你可能正在使用AJAX。

而在回調函數中你是填充的數據。完成此步驟後,請調用高亮功能。

你可能有這樣的事情:

 xmlHttp.onreadystatechange = function() 
     { 
     if (xmlHttp.readyState == 4 && xmlHttp.status == 200) 
     { 
      // do something with the response here 
      highlightData(); //<---- the function to highlight data 
     } 
     } 
+0

感謝名單了很多。它爲我工作。 – Jyoti 2010-10-20 12:21:20

相關問題