2009-12-02 33 views
0

我有以下问题需要解决。如何知道点击事件已被解雇或不在jQuery中?

我有几行数据。当我点击一行时,行的颜色必须改变,当我点击另一行时,先前选择的行的颜色应该变为正常,并且当前行应该用颜色突出显示。这是通过以下代码完成的。

Check = function() 
{ 

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

    }); 

}; 

但现在复杂性被添加到需求。当我按Shift键并选择多行时,所选行应该突出显示。任何人都可以帮我解决这个问题吗?

回答

2

可以测试这样的shift键(我还包括一个小的优化):

$('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"); 

    }); 

};