2012-03-30 121 views
1

我有一個頁面,訪問者啓動一個功能,在整個頁面上的許多元素上執行click()。每次點擊()都會導致數據從服務器加載並顯示在整個DOM中。Javascript檢查所有點擊是否已完成加載元素

查看每個特定元素是否已完成加載數據的最佳方法是什麼?假設我的測試方法加載vs未加載是「elementAlpha」.length:1 ==未加載,否則確定。

編輯:一旦我的所有數據負載,我想將自動執行另一個函數,不需要任何進一步的用戶輸入 - 這就是爲什麼我需要在執行之前,所有元素的測試自動化說功能。所以我的最後一步就是:

用戶執行clickAll()

功能clickAll: (1)單擊單擊一下... (2)已完成所有加載? NO->繼續等待,YES->執行nextStep()

我明白使用事件偵聽器是要走的路,但我似乎無法弄清楚(循環等待,根據我的CPU風扇,是錯誤的要走的路)。

+2

什麼都不能說沒有你的代碼從服務器加載數據。 – 2012-03-30 19:34:22

+0

我已經更新了我的答案 – 2012-03-30 19:43:15

回答

1

那麼你可以附上你的加載元件在.ajaxComplete()

$('.log').ajaxComplete(function() { 
$(this).text('Triggered ajaxComplete handler.'); 
}); 

因此,你觸發你的額外功能的行爲,當所有的AJAX事件是在一個特定的集裝箱/選擇器來完成。

編輯:

在這種情況下,你仍然可以使用jQuery.ajaxStop的()。當所有的Ajax事件都完成時它會啓動。

http://api.jquery.com/ajaxStop/

$('.log').ajaxStop(function() { 
$(this).text('Triggered ajaxStop handler.'); 
}); 
+0

我的元件由我不想惹這個時候,所以我只想做一些JS工作一旦一切都說過和做過服務器端的遞歸級別創建... – lioman 2012-03-30 19:38:28

+0

謝謝,ajaxStop做了詭計。 – lioman 2012-03-30 20:29:59

相關問題