我正在使用谷歌可视化表并在列表中添加复选框。我想选择一些带有复选框的行,并对所选的行执行一些操作。但是,当调用sort或page事件时,将重新绘制表,并且不选中复选框。
如何在对表进行排序或更改页后保持复选框状态?
谢谢
发布于 2017-09-15 09:23:37
在调用事件之前,可以这样做以保存复选框的checked状态:
var checkboxes = document.querySelectorAll("#table_div input[type=checkbox");
var checkboxesState = {};
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].addEventListener("change", function(){
checkboxesState[this.getAttribute("id")] = this.checked;
});
}在调用事件之后,恢复它:
google.visualization.events.addListener(table, 'sort', function(ev) {
//Needed, since the whole table DOM will change
checkboxes = document.querySelectorAll("#table_div input[type=checkbox");
for (var i = 0; i < checkboxes.length; i++) {
if (checkboxesState[checkboxes[i].getAttribute("id")]){
checkboxes[i].checked = checkboxesState[checkboxes[i].getAttribute("id")];
}
}
});https://stackoverflow.com/questions/46235789
复制相似问题