ztree吧 关注:1,833贴子:12,478
  • 23回复贴,共1

多棵树并存时都共用同一个setting吗?

只看楼主收藏回复

以下代码中,我想在click不同树的时候,给不同的标签赋值,但不知道如何区分点击的是那颗树?
callback: {
onClick: onClick
}
function onClick(e, treeId, treeNode) {
var zTree = j$.fn.zTree.getZTreeObj("treeDemo");//根据 treeId 获取 zTree 对象
nodes = zTree.getSelectedNodes();//获取 zTree 当前被选中的节点数据**
document.form1.citySel.value = nodes[0].name; //给citySel标签赋值
hideMenu();//隐藏树
}


1楼2013-03-03 10:39回复
    我觉得最好还是把两棵树的id分开较好,如果两棵树的zNodes是一样的话,可以写2个setting虽说其内容差不多,也许只有这样才能区分了吧,建议而已,希望能帮到你


    2楼2013-03-03 10:48
    收起回复
      我设置了两个setting,但setting中的那个回调函数onClick: onClick 仍然共用,无法区分,不明白什么原因.


      3楼2013-03-03 13:42
      收起回复
        你这个还是应该搞成一颗树把,在onClick函数中做相应判断吧


        IP属地:四川4楼2013-03-03 13:51
        收起回复
          1、建议做成多个 setting 对于多棵树
          2、zTree 的callback 都传回了 treeId 用于让使用者知道是哪个树的回调。。。所以可以共用 callback; 如果为了省事儿,也可以直接做多个独立的 callback,一切根据需要决定。


          IP属地:北京5楼2013-03-03 14:28
          收起回复
            针对你本帖的问题,一棵树足矣


            IP属地:四川6楼2013-03-03 15:34
            收起回复
              终于搞定了,谢谢楼上各位啊,分享以下我的代码
              function onClick(e, treeId, treeNode) {
              var zTree = j$.fn.zTree.getZTreeObj("treeDemo");//根据 treeId 获取 zTree 对象
              nodes = zTree.getSelectedNodes();//获取 zTree 当前被选中的节点数据**
              if (hahaha == "#deptSel" ) {//如果树显示在变动前部门这个位置
              document.form1.deptSelhide.value = nodes[0].id;
              document.form1.deptSel.value = nodes[0].name;}
              else if (hahaha == "#deptSel2" ) {//如果树显示在变动后部门这个位置
              document.form1.deptSelhide2.value = nodes[0].id;
              document.form1.deptSel2.value = nodes[0].name;}
              hideMenu();//隐藏树}
              function showMenu(deptSel) {
              hahaha = deptSel;//定义一个全局变量hahaha,并以树显示位置参数作为值保存,以便回调函数onClick可以调用
              var deptObj = j$(deptSel);
              var deptOffset = j$(deptSel).offset();//jquery的offset() 方法返回或设置匹配元素相对于文档的偏移(位置)
              //cityOffset.left 元素在当前视口的相对偏移
              //slideDown 通过高度变化(向下增大)来动态地显示所有匹配的元素,在显示完成后可选地触发一个回调函数。
              j$("#menuContent").css({left:deptOffset.left + "px", top:deptOffset.top + deptObj.outerHeight() + "px"}).slideDown("fast");
              j$("body").bind("mousedown", onBodyDown);//给body绑定鼠标按下事件}


              7楼2013-03-03 16:58
              收起回复
                JS全部变量,我一般前面加上下划线,以示区分 _hahaha


                IP属地:四川8楼2013-03-03 17:28
                收起回复