2012-03-28 40 views
1
$(window).load(... 

等待窗口中的所有加載。這很棒。但最近我非常希望在頁面加載的某個特定點觸發事件。例如,'一切都是圖像'。jQuery窗口加載在特定點

我希望我可以列出我失敗的嘗試,但我不知道從哪裏開始或即使這樣的事情是可能的。

喜歡的東西:

$(window).partialLoad({ 
    exclude : 'jpg, png, gif' 
}, function(){ 
    //do something when page has fully loaded except for images 
}); 

,或者相反

$(window).partailLoad({ 
    waitFor : 'woff, eot' 
}, function(){ 
    //do something after all woff and eot files have loaded 
}); 

如果可能,我會寫一個不錯的插件來處理它。任何人都可以指出我正確的方向,我可以如何實現這一目標?

回答

1

會假設$(window).load()等待所有鏈接資源下載,我們可以寫你自己的,假設沒有圖像,這將是iframe[src]script[src]link[rel="stylesheet"]

var items = $('iframe[src], link[rel="stylesheet"], script[src]'), 
    itemsLength = items.length; 

items.load(function() { 
    --itemsLength; 

    if (! itemsLength) { 
     // All loaded! 
    } 

}); 
+0

我想過這個。問題是並非所有的鏈接資源都出現在元素中。例如背景圖片或字體文件出現在外部CSS中。並不是所有的元素都會觸發一個onload事件,甚至是一個jQuery加載事件。 – Fresheyeball 2012-03-28 04:34:42

+0

@Fresheyeball聽起來像你想要我的'waitForImages()'插件的相反。 – alex 2012-03-28 04:36:40

+0

btw。我是你的博客偶爾的讀者,並且利用了你的一些javascript。我很榮幸收到你的回覆。 – Fresheyeball 2012-03-28 04:37:56