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。。。仅此记录解决方法。
?