2

我对 jQuery 有疑问。

我有以下代码在里面$(document).ready(function() {...})

 $("#one_div").hide();

 $('#button').click(function(){
        if (this.src == 'img/img1.png'){        
            this.src = 'img/img2.png';
        } 
        else {
            this.src = 'img/img1.png';
        }
        $("#one_div").slideToggle(800);
    });

#button是图像的 ID。one_div是一个 div 的 ID。

实际上,单击图像会切换 div,但问题是图像仅交换一次,从img1img2,并且从未切换回。我做错了什么?

4

4 回答 4

5

你忘了你的第二个=

(this.src == 'img/img1.png'){   
于 2013-09-04T15:03:26.707 回答
0

将代码放在 a$(window).load(function() { ... });中,以确保在切换图像之前加载图像。

$(document).ready(function() {

$("#one_div").hide();

});

$(window).load(function() {
    $('#button').click(function(){
        if ($(this).attr('src') == 'img/img1.png'){        
            $(this).attr('src', 'img/img2.png');
        } 
        else {
            $(this).attr('src', 'img/img1.png');
        }
        $("#one_div").slideToggle(800);
    });
});
于 2013-09-04T15:12:07.880 回答
0

为什么不使用类切换图像?代码未经测试,但应该是这样的:

$("#one_div").hide();

 $('#button').click(function(){
        this.toggleClass('active');
        if (this.hasClass('active')){     
            this.src = 'img/img2.png';
        } else {
            this.src = 'img/img1.png';
        }
        $("#one_div").slideToggle(800);
    });
于 2013-09-04T15:13:15.240 回答
0

尝试这个:

 $('#button').click(function(){
    var el = document.getElementById('button');
    if (el.src == 'img/img1.png'){        
        el.src = 'img/img2.png';
    } 
    else {
        el.src = 'img/img1.png';
    }
    $("#one_div").slideToggle(800);
});

我认为这返回了一个 JQUERY 对象,而不是您可以使用的 DOM 对象.src

于 2013-09-04T15:53:23.373 回答