2010-12-22 64 views
1
//Table select 
$("#reports-table tr").click(
    function() { 
     var detail_id = $(this).attr('id'); 
     $(this).addClass("selected"); 
     $(this).siblings().removeClass("selected"); 
     $('#reports-right').show().load('/members/details/'+detail_id); 
     $('#reports-table').width(680); 
    } 
); 

我目前正在使用此代碼將選定的類添加到表格行,並顯示在右側「旁邊」中單擊的行的詳細信息。問題是,我有行中的動作按鈕 - 當它們被點擊時,因爲它們是tr的子項,此功能仍在運行...jQuery:點擊排除類

如何排除某個類?

+0

在單擊處理程序爲您的操作按鈕,你可以添加一個`event.stopPropagation()` ,所以點擊不會傳播到`tr`。 – JKS 2010-12-22 19:57:00

回答

3

您可以檢查event.target指定選擇匹配,並跳出來,例如:

$("#reports-table tr").click(function(e) { 
    if($(e.target).is(".actionButtonClass")) return; 
    var detail_id = $(this).attr('id'); 
    $(this).addClass("selected"); 
    $(this).siblings().removeClass("selected"); 
    $('#reports-right').show().load('/members/details/'+detail_id); 
    $('#reports-table').width(680); 
}); 
1
//Table select 
$("#reports-table tr").click(
    function(evt) { 
     if (!$(evt.target).hasClass(".yourClass")) { 
      var detail_id = $(this).attr('id'); 
      $(this).addClass("selected"); 
      $(this).siblings().removeClass("selected"); 
      $('#reports-right').show().load('/members/details/'+detail_id); 
      $('#reports-table').width(680); 
     } 
    } 
);