jQuery Image Swap - 重置所有其他图像

时间:2012-07-24 15:19:24

标签: jquery

下面代码的Swap部分工作正常,但重置部分是我遇到麻烦的地方。我想要发生的是当你点击列表中的一个图像时,它们全部恢复到_off图像,然后你点击的图像切换到_over。

提前致谢。

 // Reset 
 $('.show').attr('src').replace("_over","_off");

 // Swap                        
 if($(this).attr("class") == "show") {
    this.src = this.src.replace("_off","_over");
 } else {
    this.src = this.src.replace("_over","_off");
 }

2 个答案:

答案 0 :(得分:2)

你可以在绑定图片点击事件处理程序时这样做,因为你唯一需要知道的是当前点击的'img'元素。

$('img').click(function(){ // <-- when img is clicked
     $(this).attr('src','_over'); // <-- change current clicked img            src = _over
     $('img').not(this).attr('src','_off'); // <-- change all other img to     src= _off
});

http://jsfiddle.net/Tkp4E/

答案 1 :(得分:0)

更改从.attr返回的值不会更改元素。因此,以下是什么之一:

如果只有一个项目包含show类:

$('.show')[0].src.replace("_over","_off");

如果有多个,

$('.show').each( function() {
  this.src.replace("_over","_off");
});