J'ai fait un curseur qui utilise les touches fléchées gauche et droite pour déplacer la diapositive, mais lorsque pressé pour rapidement il va bug un peu et je me demandais s'il est possible de limiter le nombre de presses, disons une seconde. Vous pouvez le voir ici: [lien supprimé]Comment limiter la fréquence à laquelle les touches peuvent être pressées sur un curseur jQuery?
$('#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();
}
});
Bienvenue à SO! Que voulez-vous dire par "ça va bug un peu"? Quel est le problème? –
Fondamentalement, l'animation de la diapositive ne peut tout simplement pas suivre les pressions sur les touches. – Jaybuz
Vous devez utiliser l'événement 'keydown' plutôt que 'keypress' pour plusieurs raisons: premièrement, vous obtenez un support de navigateur uniforme et non ambigu avec la propriété' keyCode' de l'événement (dans votre solution actuelle, en tapant un symbole de pourcentage) tirera la clé de flèche gauche). Deux, keypresses auto-répétitives déclencheront des événements 'keydown' répétés mais pas des événements de« keypress »dans IE. –