2010-04-29 51 views
1

我有下面的代碼,我試圖使一個加載程序出現,然後圖像淡入一旦加載。我想使該函數可重用,所以我可以用加載器ID將圖像添加到div,它將起作用。jquery從圖像中選擇這個父親

我不知道如何從圖像內部選擇父裝載機div。評論行工作正常,但是,我認爲這將選擇所有div。我只想選擇父裝載機div。任何人都可以幫忙,謝謝。

<div id="loader" class="loading"> 
    <img src="http://www.inhousedesign.co.nz/images10/caravan_01.jpg" style="display: none;"/> 
</div> 

$("#loader").each(function(){ 
    var source = $(this).find("img").attr('src'); 
    var img = new Image(); 

    $(img).load(function(){ 
     $(this).hide(); 
     //$("#loader").removeClass('loading').append(this); 
     $(this).parents("div:first").removeClass('loading').append(this); 
     $(this).fadeIn(800); 
    }).attr('src', source);  
    }); 
+0

的註釋行只會選擇id = loader的div。既然你不應該有多個具有相同ID的div,它應該只選擇一個。 – derek 2010-04-29 12:00:04

回答

0

爲什麼不使用parent方法?

$(this).parent().removeClass('loading').append(this); 
+0

我試過了,不知道爲什麼,但它不起作用 – michael 2010-04-29 12:57:12

0

最簡單的方法,是使股利有無loading.gif背景...

#div { 
    background:url(loading.gif) no-repeat center center; 
} 

然後把它加載時在IMG淡出。正如德里克所說的那樣:

0

正如德里克所說。在#loader選擇與ID裝載機股利和應該只有一個

如果你試圖讓通用許多給股利一類和利用家長選擇

$(this).parent().removeClass('loader')