如果语句没有隐藏元素并且在评估为真时显示元素

时间:2015-07-07 02:31:17

标签: jquery html

我遇到了制作间谍手机的另一个问题......间谍手机被密码锁定,我将在此代码修复后使用混淆jquery ... 但问题是,我有一个if语句检查值,看是否是正确的密码,但是当我输入正确的密码时,没有任何反应。

<!-- Spy phone-->
        <div id="spyphonectrl" style="position: fixed; top: 2%; right: 2%;">
            <button id="showspyphone" class="btn" style="color: white;">Hide/Show Spy Phone</button>
            <script>
                $(document).ready(function () {
                    $("#spyphone").hide();
                    $("#showspyphone").click(function () {
                        $("#spyphone").toggle();
                        $("#spookystuff").hide();
                    });
                });
                $("#buttonthingy").click(function () { // THIS IS THE PROBLEM
                    if ($("#loomynarty").val() == "DFF8GY8333") {
                        $("#loomynarty").hide(); // DOES NOT HIDE INPUT ELEMENT
                        $("#buttonthingy").hide(); // DOESN'T HIDE SUBMIT BUTTON
                        $("#spookystuff").show(); // DOESNT SHOW MAIN SPYPHONE STUFF
                    }
                });
</script>
            <div id="spyphone" class="spyphone">
                <p style="color: white;">Enter the code you got from passing the test.</p>

                <input type="text" id="loomynarty" style="width: 100px;">
                <button id="buttonthingy">Submit code</button>

                <div id="spookystuff">
            <button id="messagebutton"class="spyphonebutton">Messages</button>
            <div id="messages">
                <p>hai</p>
            </div>
            <button id="exit">Exit</button>
            <script>
                $("#messages").hide();
                $("#exit").hide();
                $("#messagebutton").click(function () {
                    $("#exit").show();
                    $("#messages").show();
                });
                $("#exit").click(function () {
                    if ($("#messages").is(":visible")) {
                        $("#messages").hide(); 
                        $("#exit").hide(); 
                    }
                });
            </script>
        </div>
    </div>
            </div>

我怀疑手头的问题实际上是在检查价值,但我不确定。

1 个答案:

答案 0 :(得分:1)

解决方案可以在以下小提琴中找到。

https://jsfiddle.net/dixalex/n0hwa0pu/5/

$(document).ready(function () {
jQuery("input#loomynarty").val("DFF8GY8333");
var hideProblem = setInterval( function() {     
    if($("#loomynarty").length > 0 && $("input#loomynarty").val() === "DFF8GY8333")
    {
        $("#buttonthingy").css("background-color", "red");
        $("#buttonthingy").click(function () { // THIS IS THE PROBLEM
            $("#loomynarty").hide(); // DOES NOT HIDE INPUT ELEMENT
            $("#buttonthingy").hide(); // DOESN'T HIDE SUBMIT BUTTON
            $("#spookystuff").show(); // DOESNT SHOW MAIN SPYPHONE STUFF
        //clearInterval(hideProblem);
        });  
    } else {
        var DoNothing = "";
    }
//return hideProblem;
}, 500);

});

如果参数为true,我在setInterval()JavaScript函数中设置功能,每500毫秒检查一次。我在按钮上添加了背景颜色,以便可视化代码是否正常工作并触发。这看起来只是语法错误的一个例子。您可以通过取消注释clearInterval函数来“强制停止”脚本,以便在完成所有隐藏后清除它。