![](/img/trans.png)
[英]How do I make the javascript resize event handler happen only after the user stops resizing the window?
[英]Javascript: How do I update my Event Listener to only make a change when the user STOPS typing?
我有这个事件监听器:
input_1.addEventListener('input',function(){
updateFromInput(1);
},false);
它控制滑块的位置。
现在,如果我想在输入中键入“100”,滑块将从跳转到“1”位置开始,然后跳到“10”,最后跳到“100”位置。
它非常笨重,我想给它一个更自然的感觉。
虽然我现在读JS很舒服,但我仍然是编写它的新手。
我理解这种类型的计时器所需的逻辑(如果计时器大于750ms updateFromInput ),我只是有点朦胧如何在javascript中开始编码。
当然这种类型的计时器功能已经完成了一百万次,只有很多开发人员......只是努力寻找一两个例子:)
任何代码,链接或示例将不胜感激。
通常的方法是设置一个计时器,如果你看到另一个击键,取消前一个计时器并设置一个新计时器,例如:
var timer = 0;
input_1.addEventListener('input',function(){
maybeUpdateFromInput(1);
},false);
function maybeUpdateFromInput(val) {
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(function() {
updateFromInput(val);
timer = 0;
}, 50); // 50 = 50ms, you may want 75, 100, even 125
}
这将使更新延迟50ms( setTimeout
调用的值)。 如果输入超过50毫秒,则会更新。
我认为处理这个问题的更好方法是关键时刻和关键时刻。 这样,如果用户按下并按住键,则不会被误解。 看看这个jsFiddle:
显然,您必须将其更改为添加事件侦听器(而不是HTML中的内联处理程序)。 很明显,你会将警报改为你想要的任何东西。 但希望这有助于您正在寻找的东西!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.