2010-03-11 5 views
0

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.

  1. Mes page défile vers le haut/vers le bas en fonction de la touche enfoncée.()
  2. 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 ...

Répondre

0

essayer d'ajouter un « return false » à chaque poignée clé. ou celui-ci:

if(event.stopPropagation) { 
event.stopPropagation(); // standard browsers 
} else { 
event.cancelBubble = true; // IE 
} 
+0

qui n'a pas résolu le problème. Il se comporte comme avant. – Venkat

Questions connexes