2012-04-16 45 views
2

我想讓一個表支持多行選擇(目前只是CTRL +鼠標點擊組合)。一切工作正常,但是當我點擊表區域之外時,行不會取消選擇。不幸的是,我發現專注事件根本不會觸發。這裏是我的代碼:jQuery注意事件不會觸發表元素

$(".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 2012-04-16 09:28:20

+0

謝謝@Lollero。我現在解決了我的問題。 – Kyprulez 2012-04-16 09:47:13

回答

0

只有當焦點離開元素時,「聚焦」事件纔會觸發,其中可以將集中在第一位,例如輸入元素。就我所知,一個表格元素不能得到那個焦點。您需要以其他方式處理選定行的取消選擇,Lollero在他對您的問題的評論中提出了一個可能的解決方案。如果您使用的tabindex的表體或表元素

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

在此之後,當你點擊表將得到重點

+0

非常感謝!身體上的點擊事件解決了它。 – Kyprulez 2012-04-16 09:46:48

1

表元素也能獲得焦點。

+0

這應該是公認的答案,很好用! – Campbeln 2014-07-01 03:31:39

相關問題