打造基于jQuery的高性能TreeView(asp.net)

2020-05-19 07:40:58易采站长站整理

}
else {
$(this).addClass(“bbit-tree-node-loading”);
asnyloadc(ul, item, function(data) {
item.complete = true;
item.ChildNodes = data;
asnybuild(data, deep, path, ul, item);
});
}
}
if ($(et).hasClass(“bbit-tree-elbow-plus”)) {
$(et).swapClass(“bbit-tree-elbow-plus”, “bbit-tree-elbow-minus”);
}
else {
$(et).swapClass(“bbit-tree-elbow-end-plus”, “bbit-tree-elbow-end-minus”);
}
$(this).swapClass(“bbit-tree-node-collapsed”, “bbit-tree-node-expanded”);
}
else if ($(et).hasClass(“bbit-tree-elbow-minus”) || $(et).hasClass(“bbit-tree-elbow-end-minus”)) { //- 号需要收缩
$(this).next().hide();
if ($(et).hasClass(“bbit-tree-elbow-minus”)) {
$(et).swapClass(“bbit-tree-elbow-minus”, “bbit-tree-elbow-plus”);
}
else {
$(et).swapClass(“bbit-tree-elbow-end-minus”, “bbit-tree-elbow-end-plus”);
}
$(this).swapClass(“bbit-tree-node-expanded”, “bbit-tree-node-collapsed”);
}
else if ($(et).hasClass(“bbit-tree-node-cb”)) // 点击了Checkbox
{
var s = item.checkstate != 1 ? 1 : 0;
var r = true;
if (dfop.oncheckboxclick) {
r = dfop.oncheckboxclick.call(et, item, s);
}
if (r != false) {
if (dfop.cascadecheck) {
//遍历
cascade(check, item, s);
//上溯
bubble(check, item, s);
}
else {
check(item, s, 1);
}
}
}
}
else {
if (dfop.citem) {
$(“#” + id + “_” + dfop.citem.id).removeClass(“bbit-tree-selected”);
}
dfop.citem = item;
$(this).addClass(“bbit-tree-selected”);
if (dfop.onnodeclick) {
dfop.onnodeclick.call(this, item);
}
}
}
function asnybuild(nodes, deep, path, ul, pnode) {
var l = nodes.length;
if (l > 0) {
var ht = [];
for (var i = 0; i < l; i++) {
nodes[i].parent = pnode;
buildnode(nodes[i], ht, deep, path + “.” + i, i == l – 1);
}
ul.html(ht.join(“”));
ht = null;
InitEvent(ul);
}
ul.addClass(“bbit-tree-node-ct”).css({ “z-index”: 0, position: “static”, visibility: “visible”, top: “auto”, left: “auto”, display: “” });
ul.prev().removeClass(“bbit-tree-node-loading”);
}
function asnyloadc(pul, pnode, callback) {
if (dfop.url) {
var param = builparam(pnode);
$.ajax({
type: dfop.method,
url: dfop.url,
data: param,
dataType: dfop.datatype,
success: callback,
error: function(e) { alert(“error occur!”); }
});
}
}
function builparam(node) {
var p = [{ name: “id”, value: encodeURIComponent(node.id) }
, { name: “text”, value: encodeURIComponent(node.text) }
, { name: “value”, value: encodeURIComponent(node.value) }