现象:
DataTable服务器模式下,ajax删除表格最后一条记录并reload刷新表格后报错:Uncaught TypeError: Cannot read property 'top' of undefined
原因:
使用了属性 keys: true,
//点击选中 属性keys: true,
具体现象:
在最后一行中有单元格被选中时,执行自己的删除ajax函数,会因选中标记导致报错。
详细原因:
单元格被选中时产生“选中标记”,reload刷新表格数据,“选中标记”会继承到原来的位置。
但因为删除导致那个位置的记录不存在,“选中标记”继承就会产生错误
解决办法1:
设置 keys: false;
解决办法2(不完善):
设置删除按钮禁止向上冒泡在js删除函数里添加event.stopPropagation();
// 阻止向上冒泡event.stopPropagation();
不完善原因:
这个办法只能阻止他点击删除时产生“选中标记”,无法将已经产生的“选中标记”取消掉,正确的方法应该是:取消“选中标记”,然后reload表格数据。有谁知道如何取消掉吗?欢迎留言。