多棵树并存时都共用同一个setting吗?
ztree吧
全部回复
仅看楼主
level 5
小阳糖1r 楼主
以下代码中,我想在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();//隐藏树
}
2013年03月03日 02点03分 1
level 1
我觉得最好还是把两棵树的id分开较好,如果两棵树的zNodes是一样的话,可以写2个setting虽说其内容差不多,也许只有这样才能区分了吧,建议而已,希望能帮到你
2013年03月03日 02点03分 2
两棵树都是一样的,都是选择部门,一个是员工以前的部门,一个是员工现在的部门,树的数据来源都一样,只是选中后的部门分别赋值到"以前的部门"标签和"现在的部门"标签,区别仅仅是document.form1.citySel.value = nodes[0].name; //给citySel标签赋值这一句,但我要先判断click的对象的哪颗树
2013年03月03日 02点03分
两棵树的znodes是一样的,但不知道怎样写两个setting,demo中找不到类似的例子啊
2013年03月03日 03点03分
我是想最简单的是不是连setting也不用写两个了,就共同同一个,然后在onclick那里区分点击的是哪颗树就给那个标签赋值即可,但不知道应该怎样判断
2013年03月03日 03点03分
level 5
小阳糖1r 楼主
我设置了两个setting,但setting中的那个回调函数onClick: onClick 仍然共用,无法区分,不明白什么原因.
2013年03月03日 05点03分 3
onClick: onClick onClick: onClick2 你得分开啊
2013年03月03日 05点03分
回复 top8843 :是分开了啊,但第二课树的onClick: onClick2不起作用,仍然共用了第一课树的内容
2013年03月03日 06点03分
回复 top8843 :现在好了,刚才是没有把其他参数也完全独立分开来设置
2013年03月03日 07点03分
level 6
你这个还是应该搞成一颗树把,在onClick函数中做相应判断吧
2013年03月03日 05点03分 4
我现在打算用同一棵树,区别只是树的显示位置不同,怎样把树的显示位置作为条件来应用到onclick回调函数中呢?
2013年03月03日 07点03分
level 11
1、建议做成多个 setting 对于多棵树
2、zTree 的callback 都传回了 treeId 用于让使用者知道是哪个树的回调。。。所以可以共用 callback; 如果为了省事儿,也可以直接做多个独立的 callback,一切根据需要决定。
2013年03月03日 06点03分 5
现在所有的参数都分别都设置成两套,可以用了,但仍然有个疑问,这样两棵树的话是不是要分别加载两次,明明第一棵树和第二棵树的内容一摸一样,这样做是不是得重复查询两次数据库?
2013年03月03日 07点03分
我现在想用同一棵树,在页面上显示两棵树仅仅是显示位置不同而已,实际上是同一棵树的内容,这两棵树也不会同时显示,每次点击只会打开一棵树,我想用树的显示位置作为区别的参数,不知道这个参数怎样传到onclick回调函数中去? 我只知道可以传到function showMenu()中去
2013年03月03日 07点03分
level 6
针对你本帖的问题,一棵树足矣
2013年03月03日 07点03分 6
是的,我就是想用一棵树,在页面上显示两棵树仅仅是显示位置不同而已,实际上是同一棵树的内容,这两棵树也不会同时显示,每次点击只会打开一棵树,我想用树的显示位置作为区别的参数,不知道这个参数怎样传到onclick回调函数中去? 我只知道可以传到function showMenu()中去
2013年03月03日 07点03分
你是用的下拉菜单那个DEMO吧,你是想在onclick中决定该把值赋到哪个文本框吧,最简单的办法,使用全局变量,showMenu()中决定是哪个文本框,用一个全局变量记录
2013年03月03日 08点03分
showMenu()中,var cityObj = $("#citySel");把var去掉就好了,这样cityObj 就是一个全局变量,onclick中也能调用这个变量cityObj,onclick中的var cityObj = $("#citySel");就不需要了
2013年03月03日 08点03分
回复 top8843 :差不多就是这个意思吧,我在试试看,谢谢啊
2013年03月03日 08点03分
level 5
小阳糖1r 楼主
终于搞定了,谢谢楼上各位啊,分享以下我的代码
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绑定鼠标按下事件}
2013年03月03日 08点03分 7
[哈哈]
2013年03月03日 10点03分
level 6
JS全部变量,我一般前面加上下划线,以示区分 _hahaha
2013年03月03日 09点03分 8
另外,变量名应该有语义啊,应该一眼能看出含义,怎么能hahaha 呢
2013年03月03日 09点03分
谢谢
2013年03月03日 09点03分
1