Javascript 如果单击按钮,我的keydown事件将运行太多次 $(文档).keydown(函数(e){ 如果(e.keyCode==37){//left e、 预防默认值(); $(“#新闻#容器#内部”)。动画({ //尊 左:(int#u px($(“#新闻#u容器_内部”).css(“左”)+945)>0?最大长度:“+=945” }); $(“#德拉巴”)。设置动画({ 左:(int_px($(“#dragBar”).css(“左”)-dragBar_路)

Javascript 如果单击按钮,我的keydown事件将运行太多次 $(文档).keydown(函数(e){ 如果(e.keyCode==37){//left e、 预防默认值(); $(“#新闻#容器#内部”)。动画({ //尊 左:(int#u px($(“#新闻#u容器_内部”).css(“左”)+945)>0?最大长度:“+=945” }); $(“#德拉巴”)。设置动画({ 左:(int_px($(“#dragBar”).css(“左”)-dragBar_路),javascript,jquery,html,Javascript,Jquery,Html,这是我的密码。问题是,如果我单击右箭头按钮1秒,此事件将运行35次。我需要绑定它3或4次,如果我点击1秒。 对不起,英语不好。 请帮帮我。如果您只想发射计数器,您可以使用计数器,例如4次: $(document).keydown(function(e) { if(e.keyCode == 37) { // left e.preventDefault(); $("#news_container_inner").animate({

这是我的密码。问题是,如果我单击右箭头按钮1秒,此事件将运行35次。我需要绑定它3或4次,如果我点击1秒。 对不起,英语不好。
请帮帮我。

如果您只想发射计数器,您可以使用计数器,例如4次:

$(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');
      }
    });

编辑

如果要限制每秒的事件数,可以使用
setInterval

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;
});

如果您希望显示为减慢轮询速率,则需要使用设置为
333ms
250ms
的计时器,具体取决于您希望每秒执行3次还是4次操作。但是如何设置?我不知道该怎么办。这将阻止在4点以后再按任何键,无论我按下键1秒还是10秒。。我认为要求每秒触发4次按键事件。@TJ更新了我的答案。
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;
});