xiaochao

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  1 随笔 :: 6 文章 :: 48 评论 :: 0 Trackbacks

jsTree本身自带了很多例子,但是并没有调用AJAX构建Tree的例子,在查看源代码后发现只需要在beforedata方法进行覆盖就可以实现子节点AJAX加载

测试代码如下:

  1 <!DOCTYPE html
  2 PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  4 <html xmlns="http://www.w3.org/1999/xhtml">
  5 <head>
  6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7 <title>jsTree &raquo; Demos</title>
  8 
  9 <script type="text/javascript" src="js/lib/jquery.js"></script>
 10 <script type="text/javascript" src="js/lib/jquery.cookie.js"></script>
 11 <script type="text/javascript" src="js/lib/jquery.hotkeys.js"></script>
 12 <script type="text/javascript" src="js/lib/jquery.metadata.js"></script>
 13 <script type="text/javascript" src="js/lib/sarissa.js"></script>
 14 <script type="text/javascript" src="js/jquery.tree.js"></script>
 15 <script type="text/javascript" src="js/plugins/jquery.tree.checkbox.js"></script>
 16 <script type="text/javascript"
 17     src="js/plugins/jquery.tree.contextmenu.js"></script>
 18 <script type="text/javascript" src="js/plugins/jquery.tree.cookie.js"></script>
 19 <script type="text/javascript" src="js/plugins/jquery.tree.hotkeys.js"></script>
 20 <script type="text/javascript" src="js/plugins/jquery.tree.metadata.js"></script>
 21 <script type="text/javascript"
 22     src="js/plugins/jquery.tree.themeroller.js"></script>
 23 <script type="text/javascript" src="js/plugins/jquery.tree.xml_flat.js"></script>
 24 <script type="text/javascript"
 25     src="js/plugins/jquery.tree.xml_nested.js"></script>
 26 
 27 <link type="text/css" rel="stylesheet" href="syntax/shCore.css" />
 28 <link type="text/css" rel="stylesheet" href="syntax/shThemeDefault.css" />
 29 <style type="text/css">
 30 html,body {
 31     margin: 0;
 32     padding: 0;
 33 }
 34 
 35 body,td,th,pre,code,select,option,input,textarea {
 36     font-family: "Trebuchet MS", Sans-serif;
 37     font-size: 10pt;
 38 }
 39 
 40 #container {
 41     width: 800px;
 42     margin: 10px auto;
 43     overflow: hidden;
 44 }
 45 
 46 .demo {
 47     height: 200px;
 48     width: 300px;
 49     float: left;
 50     margin: 0;
 51     border: 1px solid gray;
 52     font-family: Verdana;
 53     font-size: 10px;
 54     background: white;
 55     overflow: auto;
 56 }
 57 
 58 .code {
 59     width: 490px;
 60     float: right;
 61     margin: 0 0 10px 0;
 62     border: 1px solid gray;
 63 }
 64 
 65 pre {
 66     display: block;
 67 }
 68 
 69 .syntaxhighlighter {
 70     margin: 0 0 0 0 !important;
 71     padding: 0 !important;
 72 }
 73 </style>
 74 </head>
 75 <body>
 76 <div id="container">
 77 <h1 class="title">Async JSON demo</h1>
 78 <p>Same as with the HTML datastore you can load data from a file.</p>
 79 <script type="text/javascript" class="source">
 80     var stat =    [
 81                  { attributes : { "id" : "node_1" }, data : "Node 1" },
 82                  { attributes : { "id" : "node_2" }, data : "Node 2", state : "closed"},
 83                  { attributes : { "id" : "node_3" }, data : "Node 3", state : "closed"}
 84              ];
 85              $(function () { 
 86                  $.ajaxSetup({cache:false});//ajax调用不使用缓存
 87                  $("#async_json_1").tree({
 88                      data : { 
 89                          type : "json",
 90                          async : true,
 91                          opts : {
 92                              async : true,
 93                              method : "GET",
 94                              url : "async_json_data.json"
 95                          }
 96                      },
 97                      lang:{   
 98                         loading:"目录加载中……"  //在用户等待数据渲染的时候给出的提示内容,默认为loading   
 99                          },   
100                      ui:{
101                            theme_name:'classic'  //设置样式
102                         },
103                      callback : { 
104                          // Make sure static is not used once the tree has loaded for the first time
105                          onload : function (t) { 
106                              t.settings.data.opts.static = false
107                          },
108                          //n--节点,t是tree
109                          beforedata : function (n, t) { 
110                              if(n == false)
111                                   t.settings.data.opts.static = stat;
112                              else                                  
113                                  return {parent_Id/*参数名称*/ : $(n).attr("id"|| false}// AJAX调用参数传递
114                          }
115                      },
116                      //插件使用右键菜单支持自定义右键菜单
117                      plugins:{
118                            contextmenu:{}
119                          }
120                          
121                  });
122              });
123     </script>
124 <div class="demo" id="async_json_1"></div>
125 </div>
126 </body>
127 </html>

测试数据:async_json_data.json

 

1 [
2     { data : "A node", children : [ { data : "Only child"} ], state : "closed"},
3     { data : "Some other node",attributes:{id:4},state : "closed"}
4 ]
源码:http://www.blogjava.net/Files/xiaochao/jstreedemo.rar
posted on 2009-12-30 16:43 小超 阅读(10719) 评论(12)  编辑  收藏 所属分类: JAVASCRIPT

评论

# re: jsTree ajax使用方法 2010-02-10 16:09 chenhuagh
太没天理了,怎么就在百度上搜到一条?  回复  更多评论
  

# re: jsTree ajax使用方法 2010-03-05 10:01 小超
@chenhuagh
有什么不妥吗?  回复  更多评论
  

# re: jsTree ajax使用方法[未登录] 2010-03-05 17:40 chenhuagh
@小超
没什么,哥帮你灌水  回复  更多评论
  

# re: jsTree ajax使用方法 2010-03-10 15:18 小超
@chenhuagh
谢谢。^_^  回复  更多评论
  

# re: jsTree ajax使用方法[未登录] 2010-04-19 14:49 chenhuagh
我顶O(∩_∩)O哈!  回复  更多评论
  

# re: jsTree ajax使用方法 2010-07-15 09:50 wayen
我靠,不支持IE8  回复  更多评论
  

# re: jsTree ajax使用方法[未登录] 2010-07-15 19:45 小超
@wayen
谁说的,我现在就用着呢  回复  更多评论
  

# re: jsTree ajax使用方法[未登录] 2010-11-22 20:30 simon
IE8下最后一个节点,有错位@小超
  回复  更多评论
  

# re: jsTree ajax使用方法[未登录] 2011-07-20 10:07 123
好v~~~  回复  更多评论
  

# re: jsTree ajax使用方法 2011-07-26 22:18 xiaochao
@simon
现在JS tree就是有了新的版本 可以去下个新版的。  回复  更多评论
  

# re: jsTree ajax使用方法[未登录] 2013-05-20 18:41 dan
请问怎样可以开启checkbox功能?  回复  更多评论
  

# re: jsTree ajax使用方法 2014-05-19 15:54 demo君
json格式是不是有所限制?必须要带data么!?  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: