2011-06-08 87 views
0

嗨下面的代碼是查找丟失的圖像,刪除包含<李>元素,然後運行一個傳送帶插件。jquery將不會運行,直到我刷新頁面,即8-9

這工作沒有任何問題在Firefox,鉻等,但似乎卡住即8和9(7似乎工作),直到我刷新頁面。

一個例子頁http://www.owenarchitects.co.uk/project_010.php

我正在使用的代碼是

$(function(){ 

    var startCarousel, imgCount = $('img').length; 

    startCarousel = function() { 
    if (imgCount === 0) { 

     $("div.foo").carousel(); // TODO adjust this to match the way you start your carousel 

    } 
    } 

    $('img').load(function() { 
    imgCount--; 
    startCarousel(); 
    }) 

    .error(function() { 
    imgCount--; 
    $(this).parent().remove(); 
    startCarousel(); 
    }); 
}); 

謝謝!

+0

難道我們假設你希望它在IE 8/9像它工作在Firefox,還是你有不同的問題? – 2011-06-08 17:17:53

+0

是的,對不起喬治,應該有一個圖像傳送帶,但在旋轉木馬不加載和圖像堆疊在彼此之上。 – tom 2011-06-08 17:20:59

回答

0

這聽起來好像不起作用,因爲startCarousel在img加載和錯誤事件沒有定義,直到加載頁面。在刷新時,頁面被緩存並加載得更快,這樣方法就定義了。

要測試這個,你可以把你的$('img').load.error$(function(){聲明?我意識到它可能不想讓你想結束...但我想看看我的預感是否正確,然後再給出任何其他具體答案。

+0

嗨,謝謝,我現在已經測試過了,不幸的是我仍然得到相同的迴應。 – tom 2011-06-08 17:33:37

0

編輯2:

一個google search列出瞭如何檢測圖像丟失和刪除的網頁。相同的還有一個StackOverflow question。基本前提是使用.error function這就是你已經在你發佈的腳本中所做的事情。因此,依靠.load()不是必需的。 .error犯規列表的文檔的任何警告,也沒有任何人有任何公佈最近的問題,其執行...


編輯1:

一個偶然的谷歌搜索基於jQuery的旋轉木馬導致我這一個。 .. http://www.thomaslanciaux.pro/jquery/jquery_carousel.htm

看看這個小提琴。 http://jsfiddle.net/yvE2c/ ...它使用你的圖片,簡單的html和一個真正簡單的輪播初始化...它也可以在IE7-9瀏覽器模式下工作...除非你明確需要.load功能用於別的東西,可以考慮使用這個或其他簡單易用的輪播...


我看着你的測試頁在IE9。將瀏覽器呈現模式從IE7切換到IE9。它從來沒有在任何瀏覽器模式下的第一次運行。即使在第一次運行之後,一旦圖像被緩存,如果一個接一個地刷新多次,它不會始終如一地開始......我不確定問題是什麼,但是閱讀jquery documentation for the .load()我注意到以下comment

dpn't知道壁虎,但在Opera .load至少 ()不火 的圖像,媒體鏈接橫亙在 瀏覽器的緩存...寫的東西 像

$( 「#myImg」)。one(「load」,function(){do something}).each(function(){ if(t his.complete) $(this)。觸發器( 「負載」); });

似乎解決了這個問題。

其他用戶對此評論的回覆似乎表明這是一個主要問題。與圖像

常見的使用 時,您可能需要添加此修復程序,看看你的旋轉木馬正常啓動......

該文檔還列出了以下注意事項

負載事件

注意事項挑戰開發人員嘗試使用.load()快捷方式 來解決 解決方案,以便在完全加載圖像 (或圖像集合)時執行該功能 。有幾個 已知的告誡,這應該是 指出。它們是:

It doesn't work consistently nor reliably cross-browser 
It doesn't fire correctly in WebKit if the image src is set to the same src as before 
It doesn't correctly bubble up the DOM tree 
Can cease to fire for images that already live in the browser's cache 

您可能希望找到另一種方式來開始你的旋轉木馬......

+0

感謝您的信息,明天我會採取恰當的方式。我需要的負載,因爲我檢查丟失的圖像,然後一旦他們已經佔了,並從旋轉木馬踢入html。刪除 我想我可能不得不整理這個服務器端,而不是有點惱人的這個例子。呃,好吧! – tom 2011-06-08 19:44:40

+0

更新了我的答案。錯誤處理程序將幫助您刪除丟失的圖像。 dom準備好將初始化您的傳送帶。所以,真的不應該需要負載。 – 2011-06-09 16:59:04

+0

是的,只是使用.error的問題是它沒有及時運行,以便在旋轉木馬爲缺少的圖像添加空格之前刪除相關的html,所以在沒有損壞的圖像圖標方面很好,但仍然有空白幀滾動瀏覽。 – tom 2011-06-10 10:25:12

相關問題