如何知道点击事件是否已在jquery中被触发?

时间:2009-12-02 04:55:41

标签: jquery

我有以下问题需要解决。

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

Check = function()
{

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

    });

};

但现在要求增加了复杂性。当我按下shift键并选择多行时,所选行应突出显示。任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分: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");
});

答案 1 :(得分: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");

    });

};