easyui clearChecked与uncheckedAll
最近去查看了这两个方法的代码,
clearChecked为如下
clearChecked : function(jq) {
return jq.each(function() {
var checkedRows = $.data(this, "datagrid").checkedRows;
checkedRows.splice(0, checkedRows.length);
uncheckAll(this);
});
}
uncheckedAll为如下
uncheckAll : function(jq) {
return jq.each(function() {
uncheckAll(this);
});
}
不解的是clearChecked方法中的这两行代码是用来干什么
var checkedRows = $.data(this, "datagrid").checkedRows;
checkedRows.splice(0, checkedRows.length);
我所知道的这两个方法的结果是:clearChecked会删除所有页面的checkbox的选中状态,而uncheckAll只会删除当前页的checkbox的选中状态。而两个方法的不同处刚好就是上面那两行代码,难道上面那两行代码的意思就是非当前页的checkbox的选中状态吗。但是据我所知,checkedRows.splice(0,checkedRows.length)执行之后,不就是删除checkedRows里面的元素吗。
求大师们帮忙解答一下。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
checkedRows里面存放的是什么元素,所以页面的被选中的checkbox吗,注:我这里所说的所有页面是指分页中的所有页面
回复
是的
@antipro 也就是说,其它页面checkbox的选中状态都是被存放在checkboxRows中的,如果删除掉,状态就会随之删除,这时候如果再点回之前的页面,checkbox状态就全变为未选中了是吧
回复
是的,之前页面的选中状态,就是在这个页面被载入的时候,根据checkedRows的内容还原的。
非当前页面的内容是不存在于这个页面上的,所以也就没有uncheckAll的必要,只要吧checkedRows里的内容清空就可以了。