去掉treeselect缓存
发布网友
发布时间:2023-04-27 05:37
我来回答
共2个回答
热心网友
时间:2023-10-22 00:25
去掉treeselect缓存
1 自定义删除(即想删除哪条历史记录就删除哪条)
在百度搜索网页里的搜索栏中,点击鼠标左键两次,会出现以前搜索过的历史记录。然后用鼠标指向你想要删除的历史记录(注意:是指向,不要点击),这时这条历史记录会深色显示,再点击DEL键,就可以删除这一条历史记录了。这种方法你可以随心所欲,想删哪条都可以。
2 完全删除法
在桌面用鼠标右键点击IE图标,再点属性。选上面的“内容”按钮。再点下面的“自动完成”按钮。然后点击“清除表单”,就可以把以前的所有历史记录删掉。如果想以后也把录用的内容不留历史记录,则把“表单”前面的勾去掉。
3 用修复工具,要自动清除IE缓存,还是要借助工具,比如上网助手
热心网友
时间:2023-10-22 00:25
近期在写项目权限时需要用到easyui的tree控件做一个部门树,权限查看的时候需要看到有关选中的部门,也就是说添加完权限的时候需要查看哪些部门被选中,直白的就是部门树前面checkbox处于被选中状态。但是出现了这样一个问题,当打开权限界面查看任一菜单权限的时候是对的,打开第二个菜单的时候,第二个菜单的权限会连同上个菜单的权限一并被选中,我debug跟踪过,每次触发方法的时候都是传的当前的菜单id,去数据库表中查的,经过在js里调试几次,才知道这是由于tree里的缓存没清除。查查easyui的api,tree没有清除缓存的方法,于是我再网上查了些资料,说道ajax的cache:false时可以清除缓存,但我加上在这里无用。查了半天耽误了不少时间,也没有进展。于是自己查看下tree的其他方法在底层是怎么实现的,着手在底层写一个clear方法。在jquery.easyui.min.js里找到tree方法这就是实现tree的方法。具体如下:
在里面添加clear函数,红色框内即为实现清除tree缓存的js,代码如下:
clear:function(jq){
return jq.each(function(oj){
var tree=$.data(this,"tree").tree;
tree.find("div.tree-node-selected").removeClass("tree-node-selected");
var cc=tree.tree("getChecked");
for(var i=0;i<cc.length;i++){
tree.tree("uncheck",cc[i].target);
}
});可直接拷贝,无需改动。前台js代码如下:
$('#treeid').tree("clear");