J'utilise jquery dans un de mes projets. J'ai un scénario où je dois ajouter des événements de clavier aux cellules td d'une table pour monter et descendre en eux. J'ai été en mesure d'y parvenir en utilisant le code suivant.empêcher la page de répondre aux événements pageup/pagedown pour le défilement de la page
Voici mon code:
<script type="text/javascript">
var tds = jQuery("#myTable td");
tds.bind('keyup', function(event){
var key = event.which;
moveSelection(key, jQuery(this), tds);
event.preventDefault();
});
function moveSelection(key, current_td, all_tds){
var index = parseInt(current_td.attr("id"));
if (key == 13) { //Enter Key
current_td.click();
} else if(key == 38) { //Page Up Key
if(all_tds[index - 1]){
all_tds[index - 1].focus();
}
} else if(key == 40) { //Page Down Key
if(index < all_tds.length){
var next_index = index + 1;
if(next_index < all_tds.length){
all_tds[index + 1].focus();
}
}
}
}
j'ai pu passer à travers les cellules td si la page n'a pas de barres de défilement. Mais quand la page a des barres de défilement, quand j'utilise les touches PageUp/PageDown deux choses se produisent.
- Mes page défile vers le haut/vers le bas en fonction de la touche enfoncée.()
- La sélection td respectifs se déplace/up basée sur la touche enfoncée.
Dans le premier cas, il se peut que les événements soient liés à la page ainsi qu'à mes tables tds. Comment puis-je empêcher cela. Je ne veux pas que ma page défile quand j'ai affaire à ma table. J'ai beaucoup essayé mais j'ai échoué. Vous cherchez ici de l'aide.
Toute aide grandement appréciée .. Merci à l'avance ...
qui n'a pas résolu le problème. Il se comporte comme avant. – Venkat