javascript - 如果第一个事件使第二个事件为真,如何使 jQuery 需要第二次单击才能启动下一个事件?

标签 javascript jquery events

我正在尝试编写一个能够在网站上的图像之间切换的代码,并且我正在使用 JavaScript 和 jQuery。我希望当您单击按钮时它移至三个图像中的下一个。我已经使用 .hide();.show(); 来完成此操作 if 变量为 true 并且当您 .click() 按钮。

我的问题是它适用于第一个 if 语句,但是第一个 if 语句的结果使第二个 if 语句为真,因此也可以运行,这会导致第三个 if 语句运行,即使它们是每个都在不同的 .click() 事件中。我想知道在再次单击按钮之前是否有任何方法可以停止代码运行,或者是否有更简单的方法来编码在几个图像之间发生变化的内容。

任何帮助将不胜感激,我对此很陌生,而且有点令人困惑!

这是我的代码:

$(document).ready(function(){
                        $("#Image1").show();                     
                        var visbile1 = true;
                        $("#Image2").hide();
                        var visible2 = false;
                        $("#Image3").hide();
                        var visible3 = false;

                        $("#rightButton").click(function(){     
                                if (visible1 = true) {
                                $("#Image2").show();
                                $("#Image1").hide();
                                var visible3 = false;
                                var visible2 = true;
                                var visible1 = false;
                                };
                        });
                        $("#rightButton").click(function(event){
                                if (visible2 = true) {
                                $("#Image3").show();
                                $("#Image2").hide();
                                var visible3 = true;
                                var visible2 = false;
                                var visible1 = false;
                                };
                        }); 
                        $("#rightButton").click(function(){     
                                if (visible3 = true) {
                                $("#Image1").show();
                                $("#Image3").hide();
                                var visible3 = false;
                                var visible2 = false;
                                var visible1 = true;
                                };
                        });
                });             

最佳答案

仅将 1 个事件与 3 个 if 绑定(bind),然后问题就解决了:

$("#rightButton").click(function(){     
    if (visible1 = true) {
        $("#Image2").show();
        $("#Image1").hide();
        visible3 = false;
        visible2 = true;
        visible1 = false;
    }
    else if (visible2 = true) {
        $("#Image3").show();
        $("#Image2").hide();
        visible3 = true;
        visible2 = false;
        visible1 = false;
    }    
    else if (visible3 = true) {
        $("#Image1").show();
        $("#Image3").hide();
        visible3 = false;
        visible2 = false;
        visible1 = true;
    };
});

“或者是否有一种更简单的方法来编码在几张图像之间发生变化的内容。”

我不会为你编写代码,但是是的:)

关于javascript - 如果第一个事件使第二个事件为真,如何使 jQuery 需要第二次单击才能启动下一个事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19595941/

相关文章:

javascript - Rails Edge Guides,AJAX 示例 - 为什么同时使用 'format.js' 和 'format.json' ?

javascript - Angular 2 : Form submission canceled because the form is not connected

javascript - NodeJS 从其他函数填充 "req"

javascript - 如何在用户每次更改时获取选择器的值

java - 不使用线程的异步数据库写入

events - 如何获取主页事件列表?

javascript - 切换按钮无法正常播放音频。也是只播放一个音频元素的javascript代码

javascript - 带有单击事件的容器内的复选框

jquery - 如何使用 Jquery 在文件上传中选择多个图像提供预览?

java - Android 点击事件错误