2010-02-25 48 views
0

我正在研究利用David DeSandro的jQuery Masonry插件以及由Paul Irish的Infinite Scroll插件啓發的一些代碼的網站概念(我無法讓插件工作,因此我自己寫了類似的東西)。我已經完成了整合,所以我擁有的基本概念確實有效。如何知道何時通過jQuery的.load()方法導入的內容完全加載完成?

當某人滾動到頁面的底部加載頁面的下一部分時,我正在觸發jQuery的.load()方法。在調用.load()調用時,我調用jQuery Masonry插件來創建佈局。麻煩的是,我的網站是圖像沉重,jQuery Masonry無法在沒有首先加載圖像的情況下執行它的操作。

那麼,如何判斷何時加載.load()方法的結果,以便我可以調用jQuery Masonry。

我基本的代碼看起來是這樣的:

$("#page"+page).load(url+' #content', function() { 
    var moreContent = $(this); 
    $('#maincontent').append(moreContent).masonry({ appendedContent: moreContent });  
}); 

所有的變量等...妥善解決。

感謝您的幫助。

+0

由於未在加載的img元素上指定寬度和高度,砌體不工作嗎?如果是這種情況,是否將這些屬性設置爲一個選項?看起來像一個簡單的修復,而不是通過事件處理嘗試這樣做。 – Lobstrosity 2010-02-25 15:20:12

+0

我希望這是一個選項。但不幸的是,事實並非如此。我可以使用PHP來確定高度/寬度,但這會產生巨大的性能影響,而且我並不是真正的選擇。 – 2010-02-27 00:03:54

回答

0

事件觸發時的所有內容(包括圖像)已經準備好是load事件,所以在這種情況下,這將是適當的,而不是更常用的方法$.ready()

http://api.jquery.com/ready/(關於loadready之間區別的信息)。

+0

我不明白你在說什麼。我正在使用.load()。問題在於.load()的完整事件處理程序在注入HTML時觸發,而不是在加載響應內的圖像時觸發。 – 2010-02-27 00:06:07

相關問題