2012-11-03 21 views
0

我正在使用一個覆蓋頁面內容的div,直到幻燈片加載的集合中的第一個圖像。我用來隱藏這個div的代碼如下,但它不工作:當堆疊中的第一張圖片加載時,隱藏「loader」div?

$(function() { 
    $('.slide').first(function() { 
    $(this).load(function() { 
     $('#loader').fadeOut('slow'); 
    }); 
    }); 
}); 

任何想法爲什麼?即使在整個頁面加載之後,「加載器」div也不會隱藏。我已經有一些成功運行$('#loader')。fadeOut('slow'); (窗口).load()。

+1

我們可以看到加載圖片的HTML嗎? –

+0

它們通過另一個jQuery函數通過JSON加載,因此它們不會顯示在源代碼中......但您可以在Chrome Inspector(或同等版本)中查看它們:http://new.element17.com – NaOH

+1

你應該從json的第一個圖像獲取src,創建一個新的JS圖像對象,並將fadeout附加到圖像對象的onload函數中。 – adeneo

回答

1

您的圖像正在通過ajax加載,並且在DOM首次加載時不存在。嘗試在將第一個圖像添加到DOM後隱藏加載圖像。

$.each(images, function(index) { 
    $('#slideshow').append('<div class="slide" style="background-image:url(' + this + ');"></div>'); 
    if(index === 0){ 
    $('#loader').fadeOut('slow'); 
    } 
}); 
+0

嗯,這個也不想工作,不幸... – NaOH

+1

啊,你是動態加載.slide div ......這些元素不存在當JQuery測試加載時的頁面 –

+0

Right ...加載div的代碼如下所示:'$ .getJSON('../ functions.php',function(images){$ .each(images,function (){$('#slideshow')。append('

');}); $('#slideshow').cycle();});'有什麼辦法讓它隱藏#loader之後第一次加載.each()? – NaOH

相關問題