- 浏览: 89636 次
- 性别:
- 来自: 宜昌
文章分类
最新评论
-
chenaha:
不知道大哥是否会用sencha touch,我想写一个这样的效 ...
用ext读取XML写一个“省-市-邮编”三级联动
function Node(id, pid, text, href, icon) {
this.id = id;
this.pid = pid || null;
this.text = text || null;
this.href = href || null;
this.icon = icon || null;
this.leaf = true;
this.level = 0;
this.parent = null;
this.tabletree = null;
this.childNodes = [];
var chk = document.createElement("input");
chk.type = "checkbox";
chk.value = this.id;
chk.onclick = function () {
if (this.checked) {
this.node.checked();
} else {
this.node.unchecked();
}
};
this.chk = chk;
this.chk.node = this;
var getElByClass = function (cls, tag) {
var els = [];
var all = document.getElementsByTagName(tag || "*");
for (var i = 0; i < all.length; i++) {
if (all[i].className == cls) {
els[els.length] = all[i];
}
}
return els;
};
var txt = document.createElement("span");
txt.innerHTML = this.text;
txt.className = "nodetxt";
/**txt.onmouseover = function () {
var els = getElByClass("nodetxt", "span");
for (var k in els) {
els[k].className = "nodetxt";
}
this.className = "hover";
};**/
txt.onclick = function () {
var els = getElByClass("clicked", "span");
for (var k in els) {
els[k].className = "nodetxt";
}
this.className = "clicked";
this.node.tabletree.selectedNode = this.node;
};
this.txt = txt;
this.txt.node = this;
var sw = document.createElement("img");
sw.setAttribute("src", "../../images/minus-nl.gif");
sw.setAttribute("width", "16");
sw.setAttribute("height", "18");
sw.setAttribute("align", "bottom");
sw.onclick = function () {
var src = this.getAttribute("src");
if (src == "../../images/plus-nl.gif") {
this.setAttribute("src", "../../images/minus-nl.gif");
this.node.expand();
} else {
this.setAttribute("src", "../../images/plus-nl.gif");
this.node.collapse();
}
};
this.sw = sw;
this.sw.node = this;
var nodeui = document.createElement("div");
this.nodeui = nodeui;
}
Node.prototype.expand = function () {
var child = this.childNodes;
for (var k in child) {
child[k].nodeui.style.display = "block";
}
};
Node.prototype.collapse = function () {
var child = this.childNodes;
for (var k in child) {
child[k].nodeui.style.display = "none";
child[k].sw.setAttribute("src", "../../images/plus-nl.gif");
child[k].collapse();
}
};
Node.prototype.checked = function () {
var node = this;
var level = node.level;
node.tabletree.checkednodes.push(node);
for (var k = level; k > 1; k--) {
if (!node.parent.chk.checked) {
node.parent.chk.checked = true;
node.tabletree.checkednodes.push(node.parent);
}
node = node.parent;
}
};
Node.prototype.unchecked = function () {
var node = this;
var arr = node.tabletree.checkednodes;
for (var i in arr) {
if (arr[i].id == node.id) {
arr.splice(i, 1);
}
}
for (var k in node.childNodes) {
if (node.childNodes[k].chk.checked) {
node.childNodes[k].chk.checked = false;
for (var i in arr) {
if (arr[i].id == node.childNodes[k].id) {
arr.splice(i, 1);
}
}
node.childNodes[k].unchecked();
}
}
};
function TableTree() {
this.root = new Node(0);
this.nodes = [this.root];
this.checkednodes = [];
this.selectedNode = null;
this.container;
if (!arguments[0]) {
alert("\u8bf7\u5728\u521b\u5efa\u6811\u65f6\u6307\u5b9a\u6811\u7684\u5bb9\u5668!");
return;
}
if (typeof (arguments[0]) == "string") {
this.container = document.getElementById(arguments[0]);
} else {
this.container = arguments[0];
}
var box = document.createElement("div");
box.className = "rzytree";
var header = document.createElement("div");
header.className = "title";
var title = document.createElement("span");
title.innerHTML = "\u6743\u9650";
this.body = document.createElement("div");
this.body.style.height = '475px';
this.body.style.overflowY = 'auto';
header.appendChild(title);
box.appendChild(header);
box.appendChild(this.body);
this.container.appendChild(box);
}
TableTree.prototype.add = function (id, pid, text, href, icon) {
var p = this.getNode(pid);
if (p) {
var node = new Node(id, pid, text, href, icon);
node.level = p.level + 1;
node.parent = p;
node.tabletree = this;
p.childNodes.push(node);
p.leaf = false;
this.nodes.push(node);
}
};
TableTree.prototype.getNode = function (id) {
for (var k in this.nodes) {
if (this.nodes[k].id == id) {
return this.nodes[k];
}
}
return null;
};
TableTree.prototype.render = function () {
var body = this.body;
function drawNode(node) {
var child = node.childNodes;
for (var i in child) {
var nodeui = child[i].nodeui;
if (child[i].leaf) {
nodeui.style.paddingLeft = (child[i].level) * 16 + "px";
} else {
nodeui.style.paddingLeft = (child[i].level - 1) * 16 + "px";
nodeui.appendChild(child[i].sw);
}
//nodeui.appendChild(child[i].chk);
nodeui.appendChild(child[i].txt);
body.appendChild(nodeui);
drawNode(node.childNodes[i]);
}
}
drawNode(this.root);
};
var Ajax = function (url, params, callback) {
var reqError = "\u54cd\u5e94\u5f02\u5e38\uff01\uff01\uff01";
var sendData = null;
var createXHR = function () {
var XHR;
if (window.XMLHttpRequest) {
XHR = new XMLHttpRequest();
} else {
if (window.ActiveXObject) {
try {
XHR = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
XHR = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
}
}
}
}
return XHR;
};
var processParams = function () {
var ret = "";
for (var p in params) {
ret += "&";
ret += p + "=" + params[p];
}
ret = ret.substring(1);
return ret;
};
var method = (url.indexOf("?") == -1) ? "POST" : "GET";
if (params && typeof (params) == "object") {
if (typeof (params) == "object") {
if (method == "GET") {
url += "&" + processParams();
} else {
sendData = processParams();
}
}
if (typeof (params) == "string") {
if (method == "GET") {
url += "&" + params;
} else {
sendData = params;
}
}
}
var xhr = createXHR();
xhr.open(method, url, true);
if (method == "POST") {
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
}
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
if (callback) {
callback(xhr);
}
} else {
window.alert(reqError);
}
}
};
xhr.send(sendData);
};
TableTree.prototype.load = function (url) {
var tree = this;
this.url = url;
Ajax(url, null, function (xhr) {
var items = xhr.responseXML.getElementsByTagName("item");
for (var i = 0; i < items.length; i++) {
var code = items[i].getElementsByTagName("code")[0].childNodes[0].nodeValue;
var name = items[i].getElementsByTagName("name")[0].childNodes[0].nodeValue;
var url = "";
if (items[i].getElementsByTagName("url")[0].childNodes[0]) {
url = items[i].getElementsByTagName("url")[0].childNodes[0].nodeValue;
}
var icon = items[i].getElementsByTagName("icon")[0].childNodes[0].nodeValue;
var parent = items[i].getElementsByTagName("parent")[0].childNodes[0].nodeValue;
var type = items[i].getElementsByTagName("type")[0].childNodes[0].nodeValue;
var dscn = "";
if (items[i].getElementsByTagName("desn")[0].childNodes[0]) {
dscn = items[i].getElementsByTagName("desn")[0].childNodes[0].nodeValue;
}
tree.add(code, parent, name, url, icon);
}
tree.render();
});
};
TableTree.prototype.reload = function () {
this.nodes = [this.root];
this.checkednodes = [];
this.selectedNode = null;
this.body.innerHTML = '';
//this.load(this.url);
};
TableTree.prototype.remove = function (node) {
function remove(node){
node.nodeui.innerHTML = '';
var child = node.childNodes;
for(var k in child){
remove(child[k]);
}
}
remove(node);
var url = '../../power?operate=delete&node=' + node.id;
if(url){
Ajax(url, null, function (xhr) {
});
}
};
发表评论
文章已被作者锁定,不允许评论。
-
jQuery培训
2013-05-20 23:18 555Jquery是一个优秀的Javascript框架。它是轻量级 ... -
我的UI
2013-05-18 23:48 652(function($) { $.fn.kk = ... -
我的doubleselect
2011-08-06 11:05 837var Ajax = function(url, params ... -
我的新菜单
2011-08-06 11:02 707function Menu() { this.tbarH ... -
ziliao
2011-01-28 23:54 63sadfsdf -
无缝滚动组件
2011-01-22 23:15 863<!DOCTYPE html PUBLIC " ... -
JS组件--Tree
2011-01-15 16:05 845function MyTree(cnt) { this.i ... -
图片上传预览
2011-01-01 22:02 832<html> <hea ... -
JS组件--Menu
2010-12-25 22:19 910function Menu() { this.bars = ... -
我的JS库
2010-12-18 21:24 735//Ajax扩展 var Ajax = function(u ...
相关推荐
**jsTree 中文文档概述** jsTree 是一个流行的JavaScript库,用于在网页上创建交互式的树状视图。它主要用于组织结构化的数据,如文件系统、数据库目录或自定义项目结构。jsTree 支持多种操作,包括点击、拖放、...
通常,版本号的更新意味着修复了错误、添加了新功能或提升了性能。 总的来说,"tree(c++ tree容器)"是一个旨在简化C++开发中树结构使用的工具,它提供了与STL兼容的接口,并可能包含了多种类型的树结构,适用于需要...
开发者可以通过阅读源码来学习如何为新的FPGA设计创建或修改设备树,以确保Linux内核能够正确地初始化和操作硬件。 此外,开发过程中可能还需要使用到工具如dtc(Device Tree Compiler)进行编译,以及dtc-gen工具...
i-Tree的五大核心产品包括:i-Tree Eco、i-Tree Streets、i-Tree Hydro、i-Tree Vue和i-Tree Species Selector。 1. i-Tree Eco:它能提供整个城市森林的概况分析,通过使用来自社区随机分布样区的现场数据和当地每...
2. 叶片与果实:软件提供了丰富的叶片和果实模型库,可以自由选择或创建新的叶片形状,调整大小、颜色和排列方式,实现多样化的植被效果。 3. 风力模拟:内置的风力引擎可以根据用户设定的风速和方向,让树木动态地...
$("#treeContainer").jstree("create_node", "#", "新节点", "last"); ``` ### 3. 删除节点 删除节点使用`delete_node`方法,传入要删除的节点ID: ```javascript $("#treeContainer").jstree("delete_node", $(...
EXT Tree 是一个强大的JavaScript组件,它是EXT JS框架的一部分,用于构建可交互的树形数据结构。EXT Tree在网页中常用于展示层次结构的数据,如文件系统、组织结构或导航菜单等。EXT Tree提供了丰富的功能,包括...
为了在独立的树中显示这些选中节点,我们需要创建一个新的`el-tree`实例,其`data`属性指向`selectedNodes`。此时,我们需要确保新树的`props`与主树保持一致,以便正确显示节点。同时,为新树添加一个`'node-click'...
在`jstree 1.0`的更新中,可能包含了对性能的优化、错误修复以及新功能的添加。例如,`jstree_pre1.0_fix_1`可能是一个在正式发布1.0之前的小版本更新,主要目的是修复了一些预1.0版本中发现的问题,确保正式版的...
在标注阶段,它会应用这些学习到的关系来预测新文本中的词性。 TreeTagger的核心特性包括: 1. **高效性**:TreeTagger的执行速度快,可以处理大量文本数据,这对于大规模的文本分析项目非常有利。 2. **多语言支持...
1. 插入操作:当向B-Tree插入新的键时,如果目标节点已满,就需要分裂节点。这个过程会将节点的键和子节点平均分配到两个新节点中,同时创建一个新的父节点来包含这两个新节点的键。如果根节点满了,就创建一个新根...
**Ajax Tree技术详解** 在网页开发中,树形结构(Tree)是一种常见的数据展示方式,尤其在管理和组织层级数据时非常实用。Ajax Tree是利用Ajax技术动态加载和更新树节点,提供用户友好的交互体验。它允许用户在不...
在处理Tree节点时,特别是涉及到链接和新窗口打开的情况,有一些特定的技术要点需要注意。 首先,标题“extjs tree 节点 链接 新窗口”指的是在ExtJS的树形组件中,如何为节点设置链接并在点击时在新窗口中打开。...
每次E3.Tree更新可能会引入新的功能,例如: - **异步加载**:可能增加了对大数据量节点的异步加载支持,提高页面响应速度。 - **可扩展性**:可能增加了自定义节点渲染和事件处理的能力。 - **交互性**:可能增强了...
3. **$.jstree.defaults**:这是一个对象,包含创建新jstree实例时的默认配置选项。你可以根据项目需求覆盖这些默认值。 4. **$.jstree.defaults.plugins**:默认情况下,这个数组是空的。你需要指定一组插件的名称...
Treeplan决策树 excel插件。Treeplan是一种构建决策树的很轻巧的excel插件,可以做出比较规范的决策树,并可以自动计算结果。资源在Excel2016上验证可用。
"selectTree tree控件 日历控件 tree控件 radio CheckBox demo"这个标题揭示了几个关键的组件,它们是网页交互中的重要元素。下面将详细介绍这些控件及其应用场景。 1. **selectTree(选择树控件)**: 选择树控件...
**jQuery的Tree控件 jstree详解** 在Web开发中,常常需要展示层次结构的数据,例如文件系统、组织架构或导航菜单,这时就需要用到Tree控件。jQuery的jstree插件是一款强大的、可定制化的树形视图库,它能够轻松地将...
**Sources Tree for Mac:一款强大的Git和Mercurial版本控制系统客户端** Sources Tree是一款专为开发者设计的免费图形化界面工具,主要用于管理和操作分布式版本控制系统Git和Mercurial。这款软件由Atlassian公司...
KNN算法是一种监督学习方法,用于分类和回归任务,其核心思想是将新样本分类为其最近的K个邻居的多数类别。然而,在高维空间中,KNN的性能会显著下降,这是因为“维度灾难”(Curse of Dimensionality),即随着维度...