JavaScript,while 循环

标签 javascript while-loop

我试图让我的脚本在继续之前等待用户输入(单击按钮),这在其他语言中是可行的,但在 js 中似乎不可能。基本上,我希望用户在给定的时间范围内选择一个选项,如果用户选择了错误的选项,他们会被告知..脚本然后继续...否则,如果在一段时间后没有响应.. .script 只是继续再次播种正确的 ans,但 js 中似乎没有任何内容可以让脚本等待用户输入!我尝试了 while 循环,但这在 js 中是一个很大的禁忌,我使用了 settimeout 但没有实际效果,因为脚本只是像正常一样继续,然后在 x 时间后执行操作,我尝试设置变量并让脚本cont 仅当它是特定值时才设置,仅当用户单击时才设置...例如 varproceed=false,仅当用户单击按钮时才设置为 true,但它仍然不起作用...我尝试了很多其他解决方案,但实际上似乎没有任何效果。我喜欢 while 循环的想法,因为它正是我想要的,但是如果完全卡住我的浏览器,是否有一种更有效的循环类型将以与崩溃我的浏览器相同的方式执行? p>

下面是我的代码,它完全卡住了我的计算机。该方法在 for 循环中调用,该循环随后调用另一个方法。

function getUserResp(){
    $("#countdown").countdown({seconds: 15});
    setTimeout("proceed=true", 16000);

    $("#ans1").click(function(){
        ansStr=$(this).text();
        checkAns(ansStr);
     });    
    $("#ans2").click(function(){
        ansStr=$(this).text();
        checkAns(ansStr);
    });    
    $("#ans3").click(function(){
        ansStr=$(this).text();
        checkAns(ansStr);
        });

想要这样的东西......或者只是某种循环让脚本在继续之前等待,这样至少它给用户一些时间来响应而不是直接运行!

    do{
    $(".ans").mouseover(function(){
        $(this).addClass("hilite").fadeIn(800);
        });  

    $(".ans").mouseout(function(){
        $(this).removeClass("hilite");
        });

    }while(proceed==false);

}

最佳答案

你做错了。

浏览器中的 JavaScript 使用事件驱动模型。没有 main 函数,只有在事件发生时调用的回调(例如文档就绪或单击 anchor )。如果您希望在用户单击某个内容后发生某些事情,请在该内容上放置一个监听器。

您所做的只是在每次循环时添加一个事件监听器。

如果您想等待用户输入,那么就不要执行任何操作 - 浏览器等待用户输入(它有一个内部事件循环)。您能做的最糟糕的事情就是尝试在浏览器的顶部重新实现您自己的事件循环。

您需要learn JavaScript 。尝试像编写其他语言一样编写 JavaScript 只会导致痛苦和磨难。说真的。

Douglas Crockford said it best :

JavaScript is a language that most people don’t bother to learn before they use. You can’t do that with any other language, and you shouldn’t want to, and you shouldn’t do that with this language either. Programming is a serious business, and you should have good knowledge about what you’re doing, but most people feel that they ought to be able to program in this language without any knowledge at all, and it still works. It’s because the language has enormous expressive power, and that’s not by accident.

关于JavaScript,while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3514082/

相关文章:

javascript - 我如何证明每一行文本的宽度相同 - 并适合 div?

python - while循环检查有效的用户输入?

bash - 虽然文件不包含字符串 BASH

c - 为什么我的反向函数在 C 中不起作用?

javascript - 动态添加新字段会重置先前字段中的值

java - 从 javascript 将对象传递给 Rest

javascript - 从键数组和值数组创建对象

javascript - 更新纹理的正确方法(THREE.JS)

ruby - 你如何在 Ruby 中循环遍历多行字符串?

python - 如何在 Python 中的多个 while 语句之间切换