2011-08-26 146 views
3

我有四个或五个缩略图旁边的全尺寸图像。当我点击缩略图时,我只想要它替换全尺寸的图像。jQuery更改img src基于href

缩略图:

<a href="newimage.jpg" class="enlarge"><img src="thumbnail.jpg" alt="thumbnail" /></a> 

原图:

<div id="folio-detail"> 
<img id="fullImage" src="image.jpg" /> 
</div> 

的jQuery:

$(function(){ 
     $("a.enlarge").live('click', function (e) { 
      e.preventDefault(); 
      $("img#fullImage").attr("src", $(this).attr("href")); 
     }); 
    }); 

这是不工作...任何帮助吗?

回答

1

需要在代码之前引用jQuery,以便定义jQuery($)函数。我稍微改变你的代码太(这是工作),但希望改变使得它更清晰

<script type="text/javascript" src="jquery.js" ></script> 
<script type="text/javascript"> 
$(function() { 
    $("a.enlarge").live('click', function (e) { 
     e.preventDefault(); 
     var href = this.href; 
     $("#fullImage").attr("src", href); 
    }); 
}); 
</script> 

An example

+0

downvoter,为什么? –

+0

这不是我。我正在忙着研究为什么“this.href”与“$(this).attr(”src“,href)”有什么不同。你刚刚没有用同样的一块代码替换一段代码吗? http://jsfiddle.net/hBt6V/ –

+0

我有,我只是认为它可以使它更清晰,就是这样。 –

0

它看起来是正确的。你有没有试过提醒发生了什么?即在e.preventDefault之上放置“alert('here')”。还提醒点击href。如果两者都正确,请尝试将全图像选择器更改为'#folio-detail img'。

你还可以看看不断变化的源代码(即Firebug/Developer工具),看看是否有什么变化吗?

1

您的代码确实有效。我已经把它放入JSFiddle,它的工作原理,只是看看here on JSFiddle

你确定包含了JQuery库吗?

+0

顺便说一句,不要关注我使用的图像。他们只是我在google搜索时弹出的前两个。但它证明代码是正确的。 – Jules