2012-08-07 120 views
0

我发现这是我需要的,但我需要能够在最后一次点击时切换回第一个原始图像。使用jQuery切换图像

所以我第一形象,我单击要更改它,然后我需要再次点击它能够揭示 第一张图像。

这里是一个小提琴链接 http://jsfiddle.net/maniator/Sevdm/

+1

[?你尝试过什么(http://mattgemmell.com/2008/12/08/what-have-you-tried/) – 2012-08-07 12:37:44

+0

请在这里表现出一定的代码,而不仅仅是在jsfiddle! – Alnitak 2012-08-07 12:38:10

回答

2

你可以采取的事实,这是可能的任意属性存储在JS元素,例如,利益:

$(function() { 
    $('.menulink').on('click', function() { 
     var img = document.getElementById('bg'); 
     if (img.old) { // restore the original 
      img.src = img.old; 
      delete img.old; 
     } else {  // store original, and change 
      img.old = img.src; 
      img.src = 'http://.../'; 
     } 
     return false; 
    }); 
}); 
2

您可以保存旧src在一个变量值:

$(function() { 
    var old_img = ''; 
    $('.menulink').click(function(e){ 
     e.preventDefault(); 
     if(old_img == '') { 
      old_img = $("#bg").attr('src');     
      $("#bg").attr('src',"http://placehold.it/333/3ef/img/picture1.jpg"); 
     } else { 
      $("#bg").attr('src', old_img); 
      old_img = '';  
     } 
    }); 
}); 

jsFiddle

+0

这不会缩放 - 关闭只允许您存储一组状态。 – Alnitak 2012-08-07 12:46:22

+0

我同意,我给了这个解决方案,因为'id'在问题中使用:'$('#bg')' – zessx 2012-08-07 12:50:47

+0

谢谢,为我需要的东西 – Paul 2012-08-07 12:51:44

0

另一种解决方案,这使你可以保留所有的图像在HTML,并添加更多的需要:

<a href="" title="Switch" class="menulink">switch me</a> 
<img src="http://placehold.it/333/3ef/img/picture1.jpg"/> 
<img src="http://placehold.it/333/fe3/img/picture2.jpg"/>​ 

和JavaScript(这是不是很可扩展性,但它是一个不错的起点):

$(function() { 
    var currentImage = 0; 
    $('img').not(':first').hide(0); 

    $('.menulink').click(function(e){ 
     e.preventDefault(); 
     $('img').eq(currentImage).hide(0); 
     currentImage = currentImage >= $('img').length-1 ? 0 : currentImage+1 
     $('img').eq(currentImage).show(0); 
    }); 
}); 

见琴:http://jsfiddle.net/e95K5/