2013-06-22 39 views

回答

1

試試這個,你在TR上點擊

此代碼可能是幫助=>如果複選框被選中的是取消它在其他檢查

爲TR懸停效果,你可以寫CSS

http://jsfiddle.net/e2N4e/6/

$('table tr').click(function(){ 
    if(!$(event.target).is(":checkbox")) 
    { 

     if($(this).find('[type="checkbox"]').is(':checked')){ 
      $(this).find('[type="checkbox"]').prop('checked',false) 
      $(this).removeAttr('style'); 
     } 
     else{ 
     $(this).find('[type="checkbox"]').prop('checked',true) 

     $(this).css('background', 'yellow'); 
    } 
} 
    }) 

<style> 
table tr:hover{ 
    background:yellow; 

} 
</style> 
+0

但該複選框不起作用現在,對嗎?爲了懸停,我使用了'tr:hover {background:#FCF; }'在CSS中。儘管我只想選擇行而不是複選框,但在選擇行時會顯示懸停狀態...這是新的:http://jsfiddle.net/qqmhao/e2N4e/4/@sangram parmar – Sunny

+0

我已經更新它,現在請再試一次http://jsfiddle.net/e2N4e/5/ –

+0

這裏是新的一個根據您的要求http://jsfiddle.net/e2N4e/6/ –

1

可點擊行:

$('table').on('click', 'tr', function() { 
    var $row = $(this); 
    var $checkbox = $row.find('[type=checkbox]'); 
    $checkbox.click(); 
}); 

Hoverable行:

tr:hover { 
    background-color: grey; 
} 

啓用狀態:

$('table').on('click', '[type=checkbox]', function(e) { 
    var $checkbox = $(this); 
    var $row = $checkbox.parents('tr'); 
    e.stopPropagation(); // Prevents the other click handler from being called 
    if($checkbox.prop('checked')) { 
     $row.addClass('checked'); 
    } else { 
     $row.removeClass('checked'); 
    } 
}); 

啓用狀態CSS:

tr.checked { 
    background-color: cyan; 
} 

顯然,這將需要一些更多的工作 - 例如高亮行,其複選框已在HTML中啓用。但你明白了。

+0

看到[你的更新的小提琴](http://jsfiddle.net/e2N4e/8/)。 –

+0

Yh.Thank你都一樣:)這是第二種方法..就像第一個一樣酷..但它有點難以理解.. @Rudolph Gottesheim – Sunny

+0

@Sunny我會爭辯說這是更好的代碼,sice我實際上並沒有通過JavaScript設置CSS屬性。但你絕對正確的是,其他答案更容易閱讀和理解,你可以或多或少地將其放入。:) –