2010-06-26 73 views
1

我想從網絡服務器加載圖片而不刷新頁面。 我有簡單的頁面: 使AJAX jQuery JavaScript加載圖片?

<body><h1>Test</h1> 
     <div id="mydiv"> 
     <img src="animals.jpg"/> 
     </div> 
</body> 
</html> 

的一點是,animals.jpg內容的變化(即現在animals.jpg可狼的圖片,但分鐘後,將變成一隻貓),但是名字( animal.jpg)停留(服務器覆蓋圖像內容只有) 所以我想要的是當我點擊圖片,它會重新從服務器加載它。

我怎麼做,到目前爲止(實際上它是由的例子,我發現碎片的:)):

$(document).ready(function(){ 
     $('#mydiv').click(function(){ 
     //$('#mydiv').load("animals.jpg") // loads text instead of image 
     //$("#mydiv").append("<img src='animals.jpg'/>"); // appends old picture 
     //$("#mydiv").html("<img src='animals.jpg'/>") // not responds at all 
    }); 
}) 

沒有工作,看到的評論。

雖然我可以加載HTML的:
loadme.html

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"/></script> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
    $('#mydiv').click(function(){ 
    $('#mydiv').load("h1.html") 
    }); 
}) 


</script> 

</head> 

<body><h1>Test</h1> 
<div id="mydiv"> 
load me! 
</div> 
</body> 
</html> 

h1.html

文本


現在,當我改變h1.html「文本'在別的東西上,我點擊'加載我!'在load.html中它會一直更新內容。 這就是我想用影像來實現:/

回答

1

您需要更改圖片的src屬性才能重新加載。由於src應該保持不變,請在其末尾附加一個隨機字符串。這會讓瀏覽器認爲這是一個新的圖像。

$('#mydif>img').attr('src', 'animals.jpg?random=' + Math.random()); 
+0

謝謝,它終於工作了! $('img')。attr('src','animals.jpg?random ='+ Math.random()); (稍作修改) – vladimirze 2010-06-26 13:15:33

-1

最簡單的方式,對我來說:

<img id="myimg" src="animal.jpg"/> 

剛剛成立的JavaScript src屬性:

function f() 
{ 
    var img = document.getElementById("myimg"); 
    img.src = "your_new_pic.jpg"; 
} 

當然,如果你需要的動畫或其他很酷的東西,最好使用JQUERY。

+0

不要以爲你明白這個問題。他正在尋找一種方法來讓JavaScript重新加載**一張圖片(cachebusting)。 – ceejayoz 2010-06-26 12:49:28