Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-image-swap-if-else语句不工作_Javascript_Jquery_Html_Function_If Statement - Fatal编程技术网

Javascript jQuery-image-swap-if-else语句不工作

Javascript jQuery-image-swap-if-else语句不工作,javascript,jquery,html,function,if-statement,Javascript,Jquery,Html,Function,If Statement,我对jQuery有一个问题 我在$(document.ready(function(){…}) #按钮是图像的IDone_div是div的ID 实际上,单击图像会切换div,但问题是图像仅交换一次,从img1到img2,并且从未切换回。我做错了什么?你忘了第二个= (this.src == 'img/img1.png'){ 将代码放在$(窗口)中以确保在切换图像之前加载图像 $(document).ready(function() { $("#one_div").hide(); })

我对jQuery有一个问题

我在
$(document.ready(function(){…})

#按钮
是图像的ID
one_div
是div的ID


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

你忘了第二个
=

(this.src == 'img/img1.png'){   

将代码放在
$(窗口)中以确保在切换图像之前加载图像

$(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);
    });
});

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

$("#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);
    });
试试这个:

 $('#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对象,而不是您可以使用
.src

this.src='img/img1.png'
进行初始化的DOM对象。你需要
this.src==“img/img1.png”
if
conditionOW中,这就是brudal。因为我是在飞行中编写代码的,所以我忘记了它,实际上代码是==(也尝试了==)。也许我必须预加载图像?运行
console.log(this.src)
并验证src是否与您认为的一样。不起作用。这是完整的代码:/n$(window).load(function(){//function以隐藏div$(“#iddiv”).hide();$('#idimage')。单击(function(){if(this.src=='img/a.png'){this.src='img/b.png'}否则{this.src='img/a.png'}$(“#iddiv”).slideToggle(800)});使用
$(this.attr('src','img/img2.png')
而不是
this.src
用完整的代码更新了答案。尽管您可能会将click事件放在
$(document).ready(function(){…})中同时调用。谢谢,就像一个咒语:$(this).attr()。你知道为什么吗?是的,
this.src
是javascript,
$(this.attr('src')
是jQuery,这就是你选择点击的实际元素的方式。Javascript不知道这是什么。通常会这样,但由于您使用的是jQuery,并且需要选择实际的元素,因此需要使用
$(this)
 $('#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);
});