我正在构建一个可以具有模板化视图的表。它们由jquery控制,它将根据复选框的模式隐藏和显示列。以下是我用来实现这一目标的功能。
模板选择仅适用于应显示的字段是下拉列表中选项值的csv。我首先找到任何仍然被检查的东西并触发一次点击,以便切换表格字段然后我带走支票。然后我遍历应该显示的列表,并切换列和复选框。
适用于IE 9,Chrome和Firefox。问题是大多数用户将使用IE 8。
为什么这不起作用?
// TOGGLE COLUMN LISTENER
$('input[type=checkbox]').change(function () {
toggle_fields($(this).attr('id'));
});
// HANDLES THE TEMPLATE SELECTION
$("#select_field_template").live('change',
function () {
var fields = '';
fields = $.makeArray($(this).val().split(','));
var count = fields.length;
$("#field_form input[type=checkbox]").each(function () {
if ($(this).attr('checked') == 'checked') {
$(this).trigger('click');
$(this).removeAttr('checked');
}
});
for (var i = 0; i < count; i++) {
$('#' + fields[i]).attr('checked', 'checked');
toggle_fields(fields[i]);
}
});
function toggle_fields(a) {
var header = $("#data_table #tbl_" + a);
if (header.length < 2) return;
var column = $("#data_table td:nth-child(" + (header[1].column + 1) + ")");
if (header.is(":visible")) {
header.hide();
column.hide();
} else {
header.show();
column.show();
}
return;
}