100分,在线求一个在使用xtree过程中关于htc组件编写的问题 呵呵,tree_test.zip 俺已下载,帮 LZ 看看先!htc 俺也没用过,尽量用 JS 实现相同效果吧。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 htc 只局限于IE, 没兴趣.... LZ 发的这个版本是纯 JS 的,没用 htc,XTree 2 PRE —— 不错的东东,俺正在读它的源码。xml 文件中的 action 似乎仅用于链接地址,这块儿是关键,俺还没弄明白!饭后再继续读~~~ 哈哈,看一晚上总算弄明白了,晚上吃的饺子现在都消化得差不多了,回完贴再去吃点夜宵!言归正传,一开始没想看代码,直接通过 DOM 操作树上节点,本来都实现了,可是突然发现 XTree 是缓加载,第一版的方法在树首次加载时无效,因此必须读代码,弄清原理在下手!于是,饭后俺画了一张时序图分析 new WebFXLoadTree 的调用过程,弄到最后才找到症结所在,即 WebFXLoadTree.createItemFromElement(oNode)xloadtree2.js line 274WebFXLoadTree.createItemFromElement = function (oNode)根据 xml 节点创建树节点或递归加载子树。俺发现这个版本的 XTree 有个 Bug,即 xml 树上的 action 属性永远不会被当作函数处理!!!因此 action 的属性值总被拼接到地址后面。还有就是 LZ 在 xml 树上写的 sId 属性不知道是从哪里看到的,源码中根本不对该属性进行保存。解决方法是:1 使用 onaction 属性替换 action 属性;2 使用 id 属性替换 sId 属性。下面贴出代码,俺仅修改了 Noname8.html 和 tree.xml,没动 js ,因为现在可以实现 LZ 的要求,没必修改。另,感谢 LZ 的问题,让俺还有机会了解 XTree 这个好东东!哈L@_@K!// ==== tree.xml ====<?xml version="1.0" encoding="UTF-8"?><tree> <tree text="item1" id="ele01" onaction="insertValue(this)" /> <tree text="item2"> <tree text="item2.1" id="ele0201" onaction="insertValue(this)"/> <tree text="item2.2" id="ele0202" onaction="insertValue(this)"/> </tree> <tree item="item3" id="ele03" onaction="insertValue(this)" /></tree>// ==== Noname8.html ==== <link type="text/css" rel="stylesheet" href="css/xtree2.css"> <script type="text/javascript" src="js/xtree2.js"></script> <!-- xloadtree2.js文件依赖xtree2.js文件 --> <script type="text/javascript" src="js/xloadtree2.js"></script> <SCRIPT LANGUAGE="JavaScript">function strPage(a){ document.getElementById('diva').style.display = "block"; document.getElementById('diva').style.left=a.offsetLeft+'px' document.getElementById('diva').style.top=a.offsetTop+ a.offsetHeight+'px'}function insertValue(oNode){ document.getElementById('txtSelection').value = oNode.text; document.getElementById('hidSelectedValue').value = oNode.id; document.getElementById('diva').style.display = "none";}</SCRIPT><br><br><br>当该文本框获得焦点后,会显示一棵树(已实现,使用xtree实现的),我现在希望实现的功能时,点击树中的某一个节点,将该节点的名称值显示在文档框中,该节点的ID值放在hidden控件中,同时关闭该div的显示。在该链接中http://www.blogjava.net/davidxu/archive/2005/08/17/10332.aspx提供了实现该功能的方法(使用的是htc,但由于本人不懂htc所以肯请各位达人帮忙) <input type="text" id="txtSelection" width="30px" onfocus="strPage(this)"><div id="diva" style="overflow-y:auto;height:200px;width:70px;display:none;position:absolute"><script type="text/javascript">var tree1=new WebFXLoadTree("西医疾病","tree.xml");tree1.write();var tree2=new WebFXLoadTree("中医疾病","tree.xml");tree2.write();var tree3=new WebFXLoadTree("症状","tree.xml");tree3.write();var tree4=new WebFXLoadTree("症候","tree.xml");tree4.write();</script></div><input type="hidden" width="30px" id="hidSelectedValue" value=""> to: yixianggao(你我他,三人行必有我师焉!) 你吃饺子,是北京的吗?我也在北京,呵呵 我也在朝阳,不过还在读书,我北工大的,呵呵,我QQ:165696916msn:[email protected],交个朋友吧 jquery.getScript如何获取其他站点页面代码 javascript中单击时,使select失去焦点? 麻烦看下这段网页代码是什么意思。。 jquery中向ajax问题 js创建层时设置position属性问题 怎么实现像msn spaces里随意拖动自动调整大小的功能 请教怪问题 javascript设置iframe的问题,特别需要帮助,请高手一定帮忙,谢谢了!!!!~~~~~ 函数变量的传递问题,很简单的,请高手指教! 这段代码能输入中文? 急求一个file结合JavaScript文件上传的例子谢谢 很难的一个问题,至今没解决
xloadtree2.js line 274
WebFXLoadTree.createItemFromElement = function (oNode)
根据 xml 节点创建树节点或递归加载子树。俺发现这个版本的 XTree 有个 Bug,即 xml 树上的 action 属性永远不会被当作函数处理!!!因此 action 的属性值总被拼接到地址后面。还有就是 LZ 在 xml 树上写的 sId 属性不知道是从哪里看到的,源码中根本不对该属性进行保存。解决方法是:
1 使用 onaction 属性替换 action 属性;
2 使用 id 属性替换 sId 属性。下面贴出代码,俺仅修改了 Noname8.html 和 tree.xml,没动 js ,因为现在可以实现 LZ 的要求,没必修改。另,感谢 LZ 的问题,让俺还有机会了解 XTree 这个好东东!哈L@_@K!// ==== tree.xml ====<?xml version="1.0" encoding="UTF-8"?>
<tree>
<tree text="item1" id="ele01" onaction="insertValue(this)" />
<tree text="item2">
<tree text="item2.1" id="ele0201" onaction="insertValue(this)"/>
<tree text="item2.2" id="ele0202" onaction="insertValue(this)"/>
</tree>
<tree item="item3" id="ele03" onaction="insertValue(this)" />
</tree>
// ==== Noname8.html ==== <link type="text/css" rel="stylesheet" href="css/xtree2.css">
<script type="text/javascript" src="js/xtree2.js"></script>
<!-- xloadtree2.js文件依赖xtree2.js文件 -->
<script type="text/javascript" src="js/xloadtree2.js"></script>
<SCRIPT LANGUAGE="JavaScript">function strPage(a)
{
document.getElementById('diva').style.display = "block";
document.getElementById('diva').style.left=a.offsetLeft+'px'
document.getElementById('diva').style.top=a.offsetTop+ a.offsetHeight+'px'
}
function insertValue(oNode)
{
document.getElementById('txtSelection').value = oNode.text;
document.getElementById('hidSelectedValue').value = oNode.id;
document.getElementById('diva').style.display = "none";
}
</SCRIPT>
<br>
<br>
<br>
当该文本框获得焦点后,会显示一棵树(已实现,使用xtree实现的),我现在希望实现的功能时,点击树中的某一个节点,将该节点的名称值显示在文档框中,该节点的ID值放在hidden控件中,同时关闭该div的显示。
在该链接中
http://www.blogjava.net/davidxu/archive/2005/08/17/10332.aspx
提供了实现该功能的方法(使用的是htc,但由于本人不懂htc所以肯请各位达人帮忙)
<input type="text" id="txtSelection" width="30px" onfocus="strPage(this)">
<div id="diva" style="overflow-y:auto;height:200px;width:70px;display:none;position:absolute">
<script type="text/javascript">
var tree1=new WebFXLoadTree("西医疾病","tree.xml");
tree1.write();
var tree2=new WebFXLoadTree("中医疾病","tree.xml");
tree2.write();
var tree3=new WebFXLoadTree("症状","tree.xml");
tree3.write();
var tree4=new WebFXLoadTree("症候","tree.xml");
tree4.write();
</script>
</div>
<input type="hidden" width="30px" id="hidSelectedValue" value="">
你吃饺子,是北京的吗?我也在北京,呵呵
msn:[email protected],交个朋友吧