2012-10-01 35 views
0

是否有更簡單的方式來等待加載元素(由獨立的腳本/ MooTools的/其他)。例如:的jQuery的setTimeout延遲一個元素

我在等待一個谷歌地圖加載,但我不希望使用它的API進行檢查。所以我做了兩個功能:

function checkIfexist() { 
    if(jQuery('#container').length) 
     return 0; 
    else 
     reload(1); 
} 

function reload(mode) { 
    setTimeout(function(){ 
     do stuff 
      . 
      . 
      . 
     if(mode==1) 
      checkIfexist(); 
    }, 400); 
} 

我與reload(1);開始它的存在以這樣的方式來使用的setTimeout更簡單的方法?我不想使用延遲,等待或其他。

+0

你爲什麼不使用谷歌地圖API來檢查地圖加載完成? – iambriansreed

+0

因爲這不僅是對谷歌地圖API,它是所有類型的AJAX請求,還otside網站腳本完成的。最好的方法是使用setTimeout和如果加載與否一段時間後檢查。有時候,jQuery函數不會針對DOM的外部API提供良好的結果。 – Trouble

回答

1

.ajaxStop()火災時,所有併發Ajax請求已經完成,所以你可以直接使用它,例如:

$(function(){ 
    $(document).ajaxStop(function() { 
     // all ajax is done 
    }); 
}); 
+0

謝謝:)這雖然適用於jQuery的。如果我們使用JavaScript/mootools在頁面加載後注入元素會怎麼樣? – Trouble

+0

@Trouble然後使用[ajaxStart](http://api.jquery.com/ajaxStart/)。 :) – iambriansreed