我在使用 jQuery 模拟实时输入时遇到了一些问题。我的 Javascript 如下(这里有一个现场演示)。
$(document).ready(function () {
var keystrokes = [];
var value = "";
var counter = 0;
window.setInterval(pushKeystrokes, 100);
function pushKeystrokes() {
keystrokes.push({
value: value
});
}
$("#test").keyup(function () {
value = $(this).val();
});
$("#button").click(function () {
$("#test").val("");
$.each(keystrokes, function () {
window.setTimeout(function () {
$("#test").val(keystrokes[counter].value);
}, 100 * counter);
counter++;
});
});
});
这应该等待输入到名为 的文本字段test
,并且一旦单击按钮,它应该清除该文本字段并模拟输入用户实时键入的字符。出于某种原因,我的调用setTimeout
只产生数组中的最后一个值。
但是,如果我在而不是设置Math.random
为文本字段的值,它似乎应该每 100 毫秒更新一次。我到底做错了什么?我猜这与范围有关。setTimeout
keystrokes[counter].value
编辑:
对不起,我不清楚。我想保留用户操作的延迟,即在输入前等待几秒钟,以不同的速度输入单词等。这仍然可能吗?