easyui clearChecked与uncheckedAll

不一 发布于 2013/09/03 14:56
阅读 2K+
收藏 0

最近去查看了这两个方法的代码,
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里面的元素吗。

求大师们帮忙解答一下。



加载中
0
antipro
antipro
非当前页面的内容是不存在于这个页面上的,所以也就没有uncheckAll的必要,只要吧checkedRows里的内容清空就可以了。
antipro
antipro
回复 @不一 : 是的,之前页面的选中状态,就是在这个页面被载入的时候,根据checkedRows的内容还原的。
不一
不一
@antipro 也就是说,其它页面checkbox的选中状态都是被存放在checkboxRows中的,如果删除掉,状态就会随之删除,这时候如果再点回之前的页面,checkbox状态就全变为未选中了是吧
antipro
antipro
回复 @不一 : 是的
不一
不一
checkedRows里面存放的是什么元素,所以页面的被选中的checkbox吗,注:我这里所说的所有页面是指分页中的所有页面
返回顶部
顶部