Javascript:如何更新我的事件侦听器,使其仅在用户停止键入时进行更改
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
}
这将使更新延迟 50 毫秒(setTimeout
调用的值)。如果超过 50 毫秒没有看到输入,它将更新。
我认为处理这个问题的更好方法是同时按下键和向上键。这样,如果用户按住该键,它就不会被误解。看看这个jsFiddle:
http://jsfiddle.net/9c46B/3/
显然,您必须将其更改为添加事件侦听器(而不是 HTML 中的内联处理程序)。显然,您会将警报更改为您想要的任何内容。但希望这有所帮助,并且正是您正在寻找的!
相关文章:
- d3基于用户选择动态更新节点
- Ajax/Javascript用户状态更新
- 如何根据用户选择更新我的税款
- 是否有可能知道用户何时点击YouTube视频上的广告
- 通过 JavaScript 根据用户输入更新信用卡徽标
- 如何使用纯javascript使用用户输入更新空段落
- Twitter API,用于收听来自用户的更新/新推文
- Orionjs-博客示例-用户无法更新帖子中的任何属性
- 如何根据用户输入更新D3 SVG图表
- 根据用户输入更新网页
- 使用用户输入更新URL参数
- 如何基于单独的回调(而不是用户输入)更新knockout视图模型
- 解析sessionToken在用户密码更新时被撤销
- 如何编写一个web应用程序,其中一个用户的更新对所有用户立即可见
- 使用用户输入更新变量
- 根据用户选择更新下拉菜单值
- 我有一个javascript对象,我想通过id找到一个用户并更新他们的余额
- 订阅Meteor.用户收集更新
- 使用easyrtc的房间占用侦听器,如何在用户列表更新后立即调用其他用户
- 合金用户界面 - 更新后获取记录