2010-02-26 71 views
0

所以我有一個相當不錯的應用程序將使用ui-tabs ..問題是,我不能爲我的生活找出一種方法來預加載圖像在我的ajax顯示標籤面板之前的內容。我能想到的唯一的辦法就是爲標籤面板內容的加載創建自己的Ajax功能,並加入像這樣的Ajax調用:使用jQueryUI-tabs預加載AJAX內容的圖像

success: function(response){ 
    $(response).find('img').preload({ 
      onFinish: function(){ 
        currentTabPanel.show(); 
      } 
    }); 

}

但我想有GOT是使用jQueryUi.tabs()對象中內置的AJAX方法和事件去更好的方法..我只是不認爲我看到它... arg ..任何想法??

回答

0

什麼是響應?它代表什麼?

假設你有一個名爲imgList表示圖像對象的列表:

var imagePreloader = new Image(); 

if(imgList.length != 0) 
{ 
    imagePreloader.load(function() { 
     if(imgList.length != 0) 
     { 
     var img = imglist.pop(); 
     imagePreloader.src = img.imgSrc; 
     } 
     else 
     { 
     currentTabPanel.show(); 
     } 
    }); 

    imagePreloader.src = imgList.pop().imgSrc; 
} 
+0

響應只是一些HTML標記,它可能包含或不包含一些img標記。那麼你將這個代碼放在哪裏,這樣在代碼完成加載之前,標籤面板內容將不會顯示? – RavenHursT 2010-02-26 19:56:00

0

這是一個骯髒的小劇本我有時會使用,但它的偉大工程:

var imgstopreload = new Array('file1.jpg', 'file2.jpg', 'etc.jpg'); 
for (x in imgstopreload){ 
    (new Image).src = imgstopreload[x]; 
} 

我不會這麼做對於大量的大圖像,因爲頁面將不會完成加載,直到圖像完成,但如果你必須準備好它,它的工作原理。只是把它放在你的索引中:)

+0

是的..唯一的問題是,AJAX內容中的圖像是動態的。我無法知道圖像的名稱。這就是爲什麼我有$(響應).find('img').preload()代碼上面...謝謝雖然.. – RavenHursT 2010-02-26 18:46:13