首页 新闻 会员 周边 捐助

请教各位关于easyui的combotree表单的unselect事件的问题。

0
悬赏园豆:15 [待解决问题]

最近遇到一个关于easyui中combotree控件的困扰,我这个人又比较喜欢钻牛角尖,所以搞了好几天还没搞定。

问题是这样的,在看我本地的easyui api帮助文档的时候,发现combotree里面unselect这个方法,然后在本地代码上试了下

 CheckModifyType: function (node) {
        if (node.Data != 3) {
            $("#DTree").combotree("unselect");
        }
}

这是combotree的click方法的引用,node是选择项,绑定combotree的时候JSON有Data这个属性用来给我判断是否运行用户选择combotree。如果Data!=3,就不允许选择。使用unselect方法后,combotree会停留在选择状态,下拉面板不会关闭,用户可以继续选择。这样用户体验比较好,如果验证不符合条件后用combotree的clear方法也能实验验证,但是combotree的下拉面板会关闭,在onclick方法中调用showPanel也没有效果,所以影响用户体验。

我本地是1.4.3版本的。

 

结果第二天再运行网页发现遇到unselect方法报错了,说不存在这个方法,然后我又去看了我本地的easyui api帮助文档,发现确实没找到这个方法,奇怪了,难道我之前在梦游么? 我明明记得前几天这个方法确实我调用的,现象就是我上面说的那样。

现在为什么突然不能用了呢?网上查资料发现很多列子是调用的,但是我自己试了又明确是不行,我怀疑是版本问题,目前再一个版本一个版本的下下来看源码,关键是现在easyui官方的网站又打不开,搞了好几天了,唉有点要崩溃的感觉。

其实已经准备牺牲用户体验放弃这个问题了,最后的办法就是来博客园求助,希望大家多多指点。

哦对了,也试过自己扩展combotree的unselect方法,但是总是不成功,按照

$.extend($.fn.tree.methods,{
    unSelect:function(jq,target){
        return jq.each(function(){
            $(target).removeClass("tree-node-selected");
        });
    }
});


//调用
node = $("#tt1").tree("getSelected");
$("#tt1").tree("unSelect",node.target);      

这样去扩展,但是没什么效果,可能是我扩展的不对,看了下源码的命名规则是真心的累啊~

而且其实我还在纠结combotree到底是不是自带unselect方法呢?我记得我自己明明用过的啊,为什么第二天又不能用了?我本地的easyui.js还是那个1.4.3版本啊,到底发生了什么事呢?

紫炎的主页 紫炎 | 初学一级 | 园豆:106
提问于:2015-11-13 09:49
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册