我的keydown事件是运行太多次,如果我点击按钮
My keydown event is runs too many times if i click the button
$(document).keydown(function(e) {
if(e.keyCode == 37) { // left
e.preventDefault();
$("#news_container_inner").animate({
// zuun
left: (int_px($("#news_container_inner").css("left")) + 945) > 0 ? MAX_LENGTH : "+=945"
});
$('#dragBar').animate({
left: (int_px($("#dragBar").css("left")) - dragBar_road) < 0 ? MAX_LENGTH_Drag+1 : "-="+dragBar_road
});
console.log('left');
}
else if(e.keyCode == 39) { // right
e.preventDefault();
$("#news_container_inner").animate({
// baruun
left: (int_px($("#news_container_inner").css("left")) - 945) < MAX_LENGTH ? 0 : "-=945"
});
$('#dragBar').animate({
left: (int_px($("#dragBar").css("left")) + dragBar_road) > MAX_LENGTH_Drag+1 ? 1 : "+="+dragBar_road
});
console.log('right');
}
});
这是我的代码。问题是,如果我点击右箭头按钮1秒这个事件运行35次。我需要绑定它3或4次,如果我点击1秒。抱歉我的英语不好。
如果你只想触发它,你可以使用计数器,例如4次:
var counter = 0;
$(document).on('keydown', function(e) {
e.preventDefault();
counter++;
if(counter > 4) {
return;
}
if(e.keyCode == 37) {
console.log('left');
} else if(e.keyCode == 39) {
console.log('right');
}
}).on('keyup', function(e) {
counter = 0;
});
演示编辑
如果你想限制每秒的事件数,你可以使用setInterval
:
var counter = 0,
intervalInited = false;
function initInterval() {
intervalInited = true;
setInterval(function(){
if(counter > 4) {
counter = 0;
}
}, 1000);
}
$(document).on('keydown', function(e) {
e.preventDefault();
counter++;
if(counter > 4) {
if(!intervalInited) {
initInterval();
}
return;
}
if(e.keyCode == 37) {
console.log('left');
} else if(e.keyCode == 39) {
console.log('right');
}
}).on('keyup', function(e) {
counter = 0;
});
演示相关文章:
- 如果函数返回True,则显示Javascript按钮
- 如果未按下该按钮,则在30秒内自动执行该功能
- 如果选择单选按钮,则显示字段
- 如何在jquery中检测浏览器的后退按钮,如果有任何对话框打开,请关闭它
- 如果选择单选按钮,则显示表单
- 如果ng单击附加到提交按钮,则表单未验证
- 如果选择了特定的单选按钮,如何显示窗体
- 如果没有历史记录,我如何隐藏图像或按钮onclick=;历史.go(-1);
- Jquery:如果选中了另一个按钮,则为未选中按钮
- 如果没有任何输入,如何启用按钮
- 如果使用jQuery验证器插件找到单选按钮,则将不同的addMethod应用于字段
- php,如果我点击按钮程序重新加载页面,并且从不继续执行代码
- 如果按钮打开,则功能可转到网站
- 为什么Ng Repeat不工作,如果按钮从不同的形式调用
- 按钮功能,如果按钮被按下 10 秒钟
- 如果按钮位置发生变化,ZClip SWF不会与按钮位置对齐
- jquery如果按钮点击了执行其他操作执行其他操作
- 如果按钮被点击,表单输入中的输入值(在Javascript中)
- 如何触发只有服务器端点击事件,如果按钮有客户端和服务器端点击事件使用javascript或jQuery
- 如何添加“;活动的”;类到“;这个“;点击子按钮上的父按钮;活动的”;类如果按钮再次点击