2012-04-16 58 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

相关问题