asyncForAll.html
5.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
<!DOCTYPE html>
<HTML>
<HEAD>
<TITLE> ZTREE DEMO - async for All</TITLE>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../css/demo.css" type="text/css">
<link rel="stylesheet" href="../../../css/zTreeStyle/zTreeStyle.css" type="text/css">
<script type="text/javascript" src="../../../js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="../../../js/jquery.ztree.core-3.5.js"></script>
<!--<script type="text/javascript" src="../../../js/jquery.ztree.excheck-3.5.js"></script>
<script type="text/javascript" src="../../../js/jquery.ztree.exedit-3.5.js"></script>-->
<SCRIPT type="text/javascript">
<!--
var demoMsg = {
async:"姝e湪杩涜寮傛鍔犺浇锛岃绛変竴浼氬効鍐嶇偣鍑?..",
expandAllOver: "鍏ㄩ儴灞曞紑瀹屾瘯",
asyncAllOver: "鍚庡彴寮傛鍔犺浇瀹屾瘯",
asyncAll: "宸茬粡寮傛鍔犺浇瀹屾瘯锛屼笉鍐嶉噸鏂板姞杞?,
expandAll: "宸茬粡寮傛鍔犺浇瀹屾瘯锛屼娇鐢?expandAll 鏂规硶"
}
var setting = {
async: {
enable: true,
url:"../asyncData/getNodes.php",
autoParam:["id", "name=n", "level=lv"],
otherParam:{"otherParam":"zTreeAsyncTest"},
dataFilter: filter,
type: "get"
},
callback: {
beforeAsync: beforeAsync,
onAsyncSuccess: onAsyncSuccess,
onAsyncError: onAsyncError
}
};
function filter(treeId, parentNode, childNodes) {
if (!childNodes) return null;
for (var i=0, l=childNodes.length; i<l; i++) {
childNodes[i].name = childNodes[i].name.replace(/\.n/g, '.');
}
return childNodes;
}
function beforeAsync() {
curAsyncCount++;
}
function onAsyncSuccess(event, treeId, treeNode, msg) {
curAsyncCount--;
if (curStatus == "expand") {
expandNodes(treeNode.children);
} else if (curStatus == "async") {
asyncNodes(treeNode.children);
}
if (curAsyncCount <= 0) {
if (curStatus != "init" && curStatus != "") {
$("#demoMsg").text((curStatus == "expand") ? demoMsg.expandAllOver : demoMsg.asyncAllOver);
asyncForAll = true;
}
curStatus = "";
}
}
function onAsyncError(event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) {
curAsyncCount--;
if (curAsyncCount <= 0) {
curStatus = "";
if (treeNode!=null) asyncForAll = true;
}
}
var curStatus = "init", curAsyncCount = 0, asyncForAll = false,
goAsync = false;
function expandAll() {
if (!check()) {
return;
}
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
if (asyncForAll) {
$("#demoMsg").text(demoMsg.expandAll);
zTree.expandAll(true);
} else {
expandNodes(zTree.getNodes());
if (!goAsync) {
$("#demoMsg").text(demoMsg.expandAll);
curStatus = "";
}
}
}
function expandNodes(nodes) {
if (!nodes) return;
curStatus = "expand";
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
for (var i=0, l=nodes.length; i<l; i++) {
zTree.expandNode(nodes[i], true, false, false);
if (nodes[i].isParent && nodes[i].zAsync) {
expandNodes(nodes[i].children);
} else {
goAsync = true;
}
}
}
function asyncAll() {
if (!check()) {
return;
}
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
if (asyncForAll) {
$("#demoMsg").text(demoMsg.asyncAll);
} else {
asyncNodes(zTree.getNodes());
if (!goAsync) {
$("#demoMsg").text(demoMsg.asyncAll);
curStatus = "";
}
}
}
function asyncNodes(nodes) {
if (!nodes) return;
curStatus = "async";
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
for (var i=0, l=nodes.length; i<l; i++) {
if (nodes[i].isParent && nodes[i].zAsync) {
asyncNodes(nodes[i].children);
} else {
goAsync = true;
zTree.reAsyncChildNodes(nodes[i], "refresh", true);
}
}
}
function reset() {
if (!check()) {
return;
}
asyncForAll = false;
goAsync = false;
$("#demoMsg").text("");
$.fn.zTree.init($("#treeDemo"), setting);
}
function check() {
if (curAsyncCount > 0) {
$("#demoMsg").text(demoMsg.async);
return false;
}
return true;
}
$(document).ready(function(){
$.fn.zTree.init($("#treeDemo"), setting);
$("#expandAllBtn").bind("click", expandAll);
$("#asyncAllBtn").bind("click", asyncAll);
$("#resetBtn").bind("click", reset);
});
//-->
</SCRIPT>
</HEAD>
<BODY>
<h1>寮傛鍔犺浇妯″紡涓嬪叏閮ㄥ睍寮€</h1>
<h6>[ 鏂囦欢璺緞: super/asyncForAll.html ]</h6>
<div class="content_wrap">
<div class="zTreeDemoBackground left">
<ul id="treeDemo" class="ztree"></ul>
</div>
<div class="right">
<ul class="info">
<li class="title"><h2>瀹炵幇鏂规硶璇存槑</h2>
<ul class="list">
<li>鍒╃敤 onAsyncSuccess / onAsyncError 鍥炶皟鍑芥暟 鍜?reAsyncChildNodes 鎴?expandNode 鏂规硶鍙互瀹炵幇鍏ㄩ儴鍔熻兘銆?/li>
<li class="highlight_red">濡傛灉鐖惰妭鐐规暟閲忓緢澶э紝璇锋敞鎰忓埄鐢ㄥ欢鏃惰繘琛屾帶鍒讹紝閬垮厤寮傛杩涚▼杩囧銆?/li>
<li class="highlight_red">寤鸿锛氭紨绀烘椂璇峰埄鐢ㄨ皟璇曞伐鍏锋煡鐪?network 鐨?ajax 鍔犺浇杩囩▼銆?/li>
<li>婕旂ず鎿嶄綔
<br/><br/>
[ <a id="expandAllBtn" href="#" onclick="return false;">鍏ㄩ儴灞曞紑</a> ]
[ <a id="asyncAllBtn" href="#" onclick="return false;">鍚庡彴鑷姩鍏ㄩ儴鍔犺浇</a> ]<br/><br/>
[ <a id="resetBtn" href="#" onclick="return false;">Reset zTree</a> ]<br/><br/>
<p class="highlight_red" id="demoMsg"></p>
</li>
</ul>
</li>
</ul>
</div>
</div>
</BODY>
</HTML>