Я переключаю столбцы в таблице, используя атрибут data-col. Он работает, когда таблица уже существует.Переключение столбцов таблицы с динамически добавленными строками
Однако у меня есть функция javascript, которая добавляет новые строки в таблицу. Как я могу также автоматически устанавливать видимость столбцов динамически добавленных строк на основе статуса флажка?
HTML
<div id="tablemodal">
<h4>Select Columns to Hide or Show</h4>
<input checked="checked" data-col='column1' type="checkbox" /> Route
<input checked="checked" data-col='column2' type="checkbox" /> Distance</div>
<input checked="checked" data-col='column3' type="checkbox" /> speed</div>
<div>
<table id="table">
<tbody>
<tr>
<th class="col" data-col="column1">route</th>
<th class="col" data-col="column2">distance</th>
<th class="col" data-col="column3">speed</th>
</tr>
<tr>
<td class="col" data-col="column1">washington to new york</td>
<td class="col" data-col="column2">1000 miles</td>
<td class="col" data-col="column3">300 mph</td>
</tr>
</tbody>
</table>
<input type="button" value="add new row" id="button">
</div>
JQuery
$(function() {
$("input[data-col]").on("change", function() {
var col = $(this).data("col");
$(".col[data-col='" + col + "']").toggle();
});
})
$("#button").click(function() {
$('#table').append('<tr>'+
'<td class="col" data-col="column1">NY to Philly</td>'+
'<td class="col" data-col="column2">300 miles</td>'+
'<td class="col" data-col="column3">200mph</td>')
});
JSFiddle:https://jsfiddle.net/rdawkins/com7ef5u/12/
благодаря Тони, я изменил мой код $ ('тело'). На ('изменения', 'ввода [данных COL]', функция() { вар цв = $ (это). data ("col"); $ (". col [data-col = '" + col + "']"). toggle(); }); но это событие запускается только при изменении, когда строки добавляются, ничего не меняется, так как я могу реализовать его, чтобы проверить, не переключено ли оно или нет? –
@Bruno вы можете вручную запустить событие при добавлении строк, выполнив '$ ('body'). Change()'. –
@JohnnyKutnowski Я не уверен, что понимаю. –