Cap*_*ous 4 javascript jquery prompt
因此,我可以使用a <input type="text">和a button来处理按钮单击时输入值,而不是提示,例如:
var x = [];
$('button').on('click', function(){
x.push($(input[type="text"]).val());
});
Run Code Online (Sandbox Code Playgroud)
但是,在循环中例如:
var y=0;
var z=[];
do {
z.push(prompt('input value'));
y++;
}
while (y<5);
Run Code Online (Sandbox Code Playgroud)
循环将提示输入值,用户输入值,提示将值分配给数组,然后循环将再次提示,直到y达到5.
而不是提示,我想用我的文本字段输入和按钮执行此操作.如何让循环暂停,等待用户输入文本,并在每次到达循环的那一部分时通过单击按钮提交?
编辑:将5个值推入数组只是一个例子.假设我想创建一个游戏,其中循环将向上移动,向上移动,向下移动向下移动.我希望能够在循环期间请求用户输入,类似于提示的操作方式,但不使用提示.
你没有.你彻底改变了你的逻辑,完全失去了循环:
var z = [];
$('button').on('click', function() {
z.push($(input[type="text"]).val());
if (z.length === 5) {
// Do what you would have done after the end of the loop here
}
});
Run Code Online (Sandbox Code Playgroud)
您已编辑了该问题,并在下面评论说您接下来要做的事情可能因输入而异.这不是问题,您只需将事件响应模型应用于您的新要求.例如,你说
...假设我想创建一个游戏,其中循环将向上移动,向上移动,向下移动向下移动.
然后:
$('button').on('click', function() {
switch ($(input[type="text"]).val().toLowerCase()) {
case "up":
// Do the "up" thing
break;
case "down":
// Do the "down" thing
break;
}
});
Run Code Online (Sandbox Code Playgroud)
有几种不同的方法可以处理调度,不一定是switch.例如:
var actions = {
up: function() {
// Do the "up" thing
},
down: function() {
// Do the "down" thing
}
};
$('button').on('click', function() {
var action = actions[$(input[type="text"]).val().toLowerCase();
if (action) {
action();
}
});
Run Code Online (Sandbox Code Playgroud)
等等.关键是,而不是反复的工作(我这样做,我得到的输入,接下来我要做的事情,我得到更多的输入),你的工作被动:我得到的输入,我做了什么.这可能需要某种状态管理(记住你所处的位置)超出上面所示(第一个例子有状态管理:我们检查长度z以查看我们收集了多少输入).
| 归档时间: |
|
| 查看次数: |
153 次 |
| 最近记录: |