>>>>>>>jstree异步树勾选问题

21xxb 2011-05-24 02:31:07
jstree1.0版

异步树中绑定loaded事件,让树全部展开。
.bind("loaded.jstree", function (event, data) {
$("#aaa").jstree("open_all");
alert("TREE IS LOADED");
//在此处写了勾选复选框的代码
})

  在alert("TREE IS LOADED"); 后,从数据库中读取了对应的节点ID,用以勾选树节点。但现在的问题是loaded.jstree事件好像每次都是在载入第一层节点后就会弹出TREE IS LOADED,这样的话没办法去复选子节点了。

  请问各位有没有办法可以判断出是所有的异步节点都已载入完成呢?

  不知有没有说清楚,分不够再加。
...全文
255 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenyuqing2012 2011-06-09
  • 打赏
  • 举报
回复
chenyuqing2009@16.com...谢谢了。。
chenyuqing2012 2011-06-09
  • 打赏
  • 举报
回复
楼主。。求解决方案。。
21xxb 2011-05-30
  • 打赏
  • 举报
回复
谢楼上,已解决了,其实想在前台赋值而不是后台主要考虑了两点
1、虽然树节点的量并不是太大,但每次需要牵扯几个表做循环感觉比较麻烦而且效率不高。
2、就是树节点的读取程序是公用的,在几个不同的页面中表现形式不同,所以想着还是在前台做一些工作比较好。

我试了在异步情况下用loaded.jstree时好像每次只载入第一层节点时就被触发了,而我想要的是全部节点都载入完成后触发。

最后用了ajaxStop,解决问题。
a260881071 2011-05-25
  • 打赏
  • 举报
回复
	$(function () {
$("#demo2").jstree({
"json_data" : {
"ajax" : {
"url" : "_json_data.json",
"data" : function (n) {
return { id : n.attr ? n.attr("id") : 0 };
}
}
},
"plugins" : [ "themes", "json_data" ]
});
});


这样的代码我觉得挺好啊,
再说了,如果量大的话,你要一次取出来所有的子节点?
应该是展开的时候ajax请求读取子节点这样吧?




--------------------------------------签名分割线-------------------------------------------------
a260881071 2011-05-25
  • 打赏
  • 举报
回复
你在后台将整个json值都传向前台。不是一样也是取出来在前台处理吗?




--------------------------------------签名分割线-------------------------------------------------
21xxb 2011-05-24
  • 打赏
  • 举报
回复
是这样,后台形式上可能简单一些,但在我这个系统中需要在两个不同的表中取数据,比较量大。所以考虑用取出的数据在前台来处理。想着效果会好一些。
a260881071 2011-05-24
  • 打赏
  • 举报
回复
还是看不明白......反正是我就一下在后台把数据都取出来(包括状态).




--------------------------------------签名分割线-------------------------------------------------
a260881071 2011-05-24
  • 打赏
  • 举报
回复
如果你用的是json数据的话里面不是有个opened的属性吗?你后台传过来的时候什么都不用做啊.




--------------------------------------签名分割线-------------------------------------------------

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧