2015-09-24 43 views
1

我已經嘗試了幾種方法,但從未完全達到目標。我基本上想,如果我用我的選擇 - 全按鈕來改變每一行的背景顏色:用jQuery着色表格中的每一行

<th class="w70 c" id="project_table_header_checkbox"> 
    <input type="checkbox" name="all" value="1" onclick="$('#project-table input[type=checkbox]').not('[disabled]').prop('checked', $(this).prop('checked')); colorizeRows();"> 
</th> 

我也得到了改變一行的顏色的工作方式:

$(":checkbox").change(function() { 
    $(this).parents('tr').find('td').toggleClass("bgcolor_grey", this.checked) 
}) 

我認爲只在我的複選框上有一個監聽器會很有用,它會在狀態更改時更改行顏色。

我該怎麼做?


編輯:

<div class="fullwidth c" id="project-table"> 
     <div class="box"> 
      <table> 

      <tr> 
       <th class="w70 c" id="project_table_header_checkbox"> 
+0

請在它的行共享的加價表。 – TylerH

+0

我的表是動態生成的。請參閱編輯。 – Spacemoose

+1

** [this here](https://jsfiddle.net/Guruprasad_Rao/80u0ryqx/)** –

回答

2

使用selectAll觸發你檢查後其他複選框change /取消他們

$('#selectAllId').change(){ 
    $(":checkbox").not(this).prop('checked', this.checked).change() 
}); 

現在你有切換的行類的電流變化的事件處理程序代碼將被觸發

+0

你是我的英雄。 – Spacemoose

1

讓你變函數一個複選框,並添加像這樣到你選擇的所有複選框(我建議你使用IDS形成和選擇所有複選框)

$('#select_all').change(function() { 
    var checkboxes = $('#your_form').find(':checkbox'); 
    if($(this).is(':checked')) { 
     checkboxes.prop('checked', true); 
    } else { 
     checkboxes.prop('checked', false); 
    } 
});