2010-11-05 81 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编码等)...