function count(){
//user input stored in the last index of the array each cycle
array[lastindex]=userinput;
setInterval(count,5000);
}
像上面的示例代码一样,我通过存储用户输入填充数组。但是,我想再添加一个案例,如果用户在5秒内没有输入任何内容,我仍然可以存储一个表示该标记的“标记”。换句话说,如何在下一个周期之前自动检测到这个?谢谢
答案 0 :(得分:0)
我想像这样 - 存储一个表明用户现在正在输入的变量。添加一个事件,例如,keyup到用户输入的输入,在5秒的空闲后更改变量。
var
userTyping = false,
typingId;
$("input").keyup(function(){
userTyping = true;
window.clearInterval(typingId);
typingId = window.setTimeout(function(){userTyping = false;}, 5000);
});
然后检查:
function count(){
//user input stored in the last index of the array each cycle
if(!userTyping){
array[lastindex]=userinput;
}
setTimeout(count,5000);
}
请注意,如果在函数内部,你应该使用setTimeout,而不是每次调用时都使用setInterval - 这样会很糟糕......
答案 1 :(得分:0)
首先,问题是没有新输入意味着userInputOld === userInput
或userInput === ""
?我猜不会,因为检查它是微不足道的。
您必须创建一个标记是否有输入的变量。我们假设键盘输入:
var hasInput = false;
$("input").keyup(function(){hasInput = true;})
然后你可以在你的代码中查看它
function count(){
//user input stored in the last index of the array each cycle
if (hasInput) {
array[lastindex]=userinput;
} else {
aray[lastindex]=null;
}
setInterval(count,5000);
}
无论如何,我想问你到底在做什么,因为看起来你可能完全可以做得更好。