Как ограничить частоту нажатия клавиш на слайдере jQuery? - PullRequest
2 голосов
/ 13 июня 2010

Я сделал ползунок, который использует клавиши со стрелками влево и вправо для перемещения слайда, но при быстром нажатии он немного подведет, и мне было интересно, можно ли ограничить количество нажатий, скажем, в секунду. Вы можете увидеть это здесь: [ссылка удалена]

$('#slider-nav div').click(function() {
    $('#slider-nav div').removeClass('selected').addClass('');
    $('#slider-nav div:eq('+($.jcarousel.intval($(this).text())-1)+')').addClass('selected');
})

// Allow left and right keys to control slider
$(document.documentElement).keypress(function(e) {
    var code = (e.keyCode ? e.keyCode : e.which);
    var direction = null;

    // handle cursor keys
    if (code == 37) { // left key
        direction = 'prev';
    }
    else if (code == 39) { // right key
        direction = 'next';
    }

    if (direction != null) {
        $('#slider-nav div.selected')[direction]().click();
    }
});

1 Ответ

1 голос
/ 13 июня 2010

Вы можете добавить глобальную переменную, а затем при нажатии клавиши установить ее на getTime(), а затем при следующем вызове проверить, не меньше ли разница в установленном и текущем времени, чем 1000.

    var checkTime = 0;
function onKeyPress(){
    var currentTime = new Date()
    if((currentTime.getTime() - checkTime) > 1000){
        //do stuff;

        checkTime =currentTime.getTime();
    }
}
...