我想创建一个触发 onkeyup
事件的 Javascript 函数,它的任务是调用主解析器函数,但前提是至少 x 毫秒内没有触发任何键,其中 x
是函数参数。
例如:
我们有html代码:
<body>
<input type="text" id="suggestion" onkeyup="callMe(200);"/>
</body>
和 Javascript 类似:
<script type="text/javascript">
function callMe(ms)
{
//wait at least x ms then call main logic function
// e.g. doMain();
alert("I've been called after timeout"); //for testing purposes
}
</script>
因此,当我输入时,警报不会被调用,直到您至少 x 毫秒内没有输入任何内容。
最佳答案
可以使用定时器,也需要每次清空前一个定时器。
要实现这一点,最好使用“包装器”功能:
<input type="text" id="suggestion" onkeyup="DelayedCallMe(200);"/>
还有 JavaScript:
var _timer = 0;
function DelayedCallMe(num) {
if (_timer)
window.clearTimeout(_timer);
_timer = window.setTimeout(function() {
callMe(num);
}, 500);
}
这将在最后一次按键事件后 500 毫秒执行函数。
关于Javascript onkeyup 延迟函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13910844/