MzTree梅花雪树单击Node页面跳动问题解决及单击展开子节点
问题:
1.
梅花雪树2.0 中单击一个URL: #的节点的时候,会是页面跳动到最顶部,很麻烦,影响使用
2.
梅花雪树2.0 中单击节点名称展开子节点功能实现
故修改了mztreeview2\scripts\system\web\ui\webcontrols 下的mztreeview.js文件
添加了2个 String 方法:endsWith 和 startsWith
并且修改了
//private: attachEvent tree onClick
MzTreeView.prototype.clickHandle = function(e) 方法
代码如下:
//public:String startsWith endsWith by feiding 20091209
String.prototype.startsWith = function(prefix) {
return this.indexOf(prefix) == 0;
};
String.prototype.endsWith = function(suffix) {
return this.match(suffix+"$") == suffix;
};
//private: attachEvent tree onClick update by feiding 20091209
MzTreeView.prototype.clickHandle = function(e)
{
e = window.event || e; var B;
e = e.srcElement || e.target;
if(B=(e.id && 0==e.id.indexOf(this.index +"_")))
{
var n=this.currentNode=this.nodes[e.id.substr(e.id.lastIndexOf("_")+1)];
}
switch(e.tagName)
{
case "IMG" :
if(B)
{
if(e.id.indexOf(this.index +"_expand_")==0){
n.expanded ? n.collapse() : n.expand();}
else if(e.id.indexOf(this.index +"_icon_")==0){
n.focus();}
else if(e.id.indexOf(this.index +"_checkbox_")==0){
n.check(!n.checked); n.upCheck();}
}
break;
case "A":
if(e.href.endsWith("#")){
{
e=this.nodes[e.id.substr(e.id.lastIndexOf("_") +1)];
e.expanded ? e.collapse() : e.expand();
this.currentNode=e;
n.focus();
}
window.event.returnValue = false;
}else{
if(B){ n.focus(); this.dispatchEvent(new System.Event("onclick"));}
}
break;
default :
if(System.ns) e = e.parentNode;
break;
}
};
附件上传 梅花雪树2.0 ---MzTreeView20.rar 的 未修改的 完整文件
至此问题解决。。。。。hoho。。。仅此记录解决方法。
本文解决了MzTree2.0中单击URL:#节点导致页面跳动的问题,并实现了单击节点名称即可展开子节点的功能。通过修改mztreeview.js文件并增加字符串方法,最终实现了需求。
1829

被折叠的 条评论
为什么被折叠?



