2010-11-05 77 views
0

我試圖讓一個圖像交換使用jQuery .attr從原始圖像源位置的「圖像/ origImage」的div類點擊事件到一個新的圖像源位置的「圖片/ newImage「jQuery交換圖像不加載

當我點擊div時,如果右鍵單擊圖像並查看Address(URL)屬性,我看到新圖像URL I,但在瀏覽器中圖像無法加載 - 我看到有紅十字的白色盒子。我的jQuery代碼位於ASP.NET Master頁面,div和圖像標記位於內容頁面中。

這裏是內容頁面標記

<div class="xxx"> 
    <img src="Images/origImage" class="changesrc" /> 
</div> 

而在母版頁頭,我有:

<script language="javascript" type="text/javascript"> 
    $("div.xxx").click(function(){ 
     $('.changesrc').attr("src", "Images/newImage"); 
    }); 
</script> 

任何人都可以幫助我如何實現交換的圖像,並得到它的加載瀏覽器。我嘗試預加載新圖像,但似乎沒有工作。

+0

的$選擇是一個有點含糊 - 它會影響任何元素與類(「changesrc。」)。您可以改爲定位$(this).find('。changesrc') - 它會在被點擊的div內找到.changesrc類。 – 2010-11-05 17:26:43

+0

另外,不要忘記把這個jQuery放在$(document).ready()塊中。 – 2010-11-05 17:27:58

回答

0

我已經實施了類似的使用background風格,我不知道這是否會幫助你。我明確地打出IMG變量:

$("div.xxx").click(function(){ 

    var img = 'path/toNew.jpg';  
    $('.changesrc').attr('style', 'background: url(' + img + '); ') 

    }); 
1

這應該適用於大多數瀏覽器。你有沒有使用Firebug或類似的東西,看看瀏覽器是否試圖下載新的圖像?也許有錯誤的網址(錯誤的位置,沒有URL編碼等)...