2009-12-02 6 views
0

J'ai le problème suivant à résoudre.Comment savoir si un événement click a été déclenché ou non dans jquery?

J'ai peu de lignes de données. Lorsque je clique sur une rangée, la couleur de la rangée doit être changée et quand je clique sur l'autre rangée, la couleur de la rangée sélectionnée précédente devrait devenir normale et la rangée actuelle devrait être mise en évidence avec la couleur. Ceci est fait à travers le code suivant.

Check = function() 
{ 

    $('tr').click(function(){ 
     $('tr').removeClass("coloradd"); 
     $(this).addClass("coloradd"); 

    }); 

}; 

Mais maintenant une complexité est ajoutée aux exigences. Quand j'appuie sur la touche Maj et sélectionne plusieurs lignes, les lignes sélectionnées doivent être surlignées. Quelqu'un pourrait-il m'aider avec ça?

Répondre

2

Vous pouvez tester la touche Maj enfoncée comme ceci (j'inclus aussi un peu d'optimisation):

$('tr').click(function(e){ 
    // Only run if Shift key is not held down 
    if(!e.shiftKey) $('tr.coloradd').removeClass("coloradd"); 

    // Always select the current row 
    $(this).addClass("coloradd"); 
}); 
0
Check = function() 
{ 

    $('tr').click(function(e){ 
     var code = (e.keyCode ? e.keyCode : e.which); 
     if(code != SHIFT_KEY_CODE_HERE) { 
     $('tr').removeClass("coloradd"); 
     } 

     $(this).addClass("coloradd"); 

    }); 

}; 
Questions connexes