使用jQuery切换图像

时间:2012-08-07 12:35:00

标签: jquery image

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

所以我有第一张图片,我点击更改它,然后我需要再次点击它以显示 第一张图片。

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

3 个答案:

答案 0 :(得分: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;
     });
 });

答案 1 :(得分: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

答案 2 :(得分: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/