2012-12-15 74 views
0

圖加載此代碼工作時,IMG SRC已經設置,如:jQuery的負載格時,從腳本

<div id="images"> 
<img src="something.jpg" /> 
</div> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("div#images").hide(); 
     $("div#images").find("img").load(function(){ 
      $(this).closest("div#images").show(); 
     }); 
    }); 
</script> 

但如果圖像的src是調用腳本它不工作:

<img src="getimage.php?img=something.jpg" /> 

在getimage.php中,我使用echo readfile($ _ GET [「img」]);

我該如何做這項工作?

帕特里克

+0

你可以試試這個:在瀏覽器中瀏覽到: 「getimage.php IMG = something.jpg」,你可以看到圖像? – Josep

+0

是的何塞普。我可以看到。 – trogne

+0

使用jQuery'load'函數。 –

回答

0

如果你要處理的SRC屬性你可以在你JQuery的attr()功能:

$("#myImg").attr("src","newImage.png"); 
+0

好吧,我會如何應用這個? – trogne

+0

不確定你在問什麼。當您需要獲取新圖像而不是現有圖像時,您可以按照我演示的方式使用該方法。也就是說,您可以擁有一個隱藏的IMG元素,並具有空的SRC屬性,該元素將通過JS – Matanya

0

使用window.onload而不是$(document).ready

$(document).ready發生在html準備就緒時,而window.onload發生在圖像和競爭已被加載後。

我認爲你的代碼存在的問題是,當加載div「div#images」內的任何圖像時,即使其他圖像沒有被調用,也會調用顯示相同div的函數裝載尚未。

您可以嘗試隱藏$(document).ready上的「div#images」並將其顯示在window.onload上。

+0

進行處理。我試過了。但是它不起作用,因爲$(window).load()稍後會運行,也會在加載圖像數據之後運行。 – trogne

+0

嘗試隱藏$(document).ready中的「div#images」並將其顯示在window.onload上 – Josep

0

謝謝!

這就是我所做的:

<script type="text/javascript"> 
$("div#images").hide(); 
var $images = $('div#images img'); 
var loaded_images_count = 0; 
$images.load(function(){ 
    loaded_images_count++; 
    if (loaded_images_count == $images.length) { 
     $("div#images").show(); 
    } 
}); 
</script>