2012-04-16 17 views
2

複数の行選択をサポートするテーブルを作成しようとしています(現時点ではCTRL +マウスクリックの組み合わせ)。すべて正常に動作しますが、テーブルエリアの外をクリックすると、行は選択解除されません。残念ながら、私はfocusoutイベントがまったくトリガしないことを知りました。ここに私のコード:jQuery focusoutイベントがテーブル要素でトリガーされない

$(".library tbody tr").live('click', function (event) { 
     event.preventDefault(); 

     if (event.ctrlKey) { 
      $(this).toggleClass('selected-row'); 
     } else { 
      $(".library tbody tr").removeClass("selected-row"); 
      $(this).addClass("selected-row"); 
     } 
    }); 

    $("table.library").live('click', function() { 
     $(".library").addClass("focused"); 
    }); 

    $("table.library").live('focusout', function() { 
     $(this).removeClass("focused"); 
    }); 

他に誰かがこの問題に対処しましたか?前もって感謝します!

+0

あなたの質問にも受け入れられる回答が適用されます。 http://stackoverflow.com/questions/8410587/jquery-focus-out-on-tr – Joonas

+0

ありがとう、@ Lollero。私は今問題を解決しました。 – Kyprulez

答えて

0

「focusout」イベントは、フォーカスが入力要素などの最初の場所にフォーカスされる要素を残すときにのみ発生します。私が知る限り、テーブル要素はそのフォーカスを得ることができません。選択された行の選択を他の方法で処理する必要があるでしょう。Lolleroは、あなたの質問に対する彼のコメントに1つの可能な解決策を示しました。あなたがテーブルの上のクリックしたときに、それがフォーカスを取得します。この後

$('#tableId tbody').attr("tabindex", 1); 

としてテーブル本体またはテーブル要素のためのtabindexを使用する場合

+0

ありがとうございます!体のクリックイベントがそれを解決しました。 – Kyprulez

1

表要素もフォーカスを取得することができます。

+0

これは受け入れられた答えでなければなりません、素晴らしい作品です! – Campbeln

関連する問題