下面的写法还是有错:
<script language="JavaScript"
  src="MzTreeView10.js"></script><style>
A.MzTreeview
{
  font-size: 9pt;
  padding-left: 3px;
}
</style>
<script language="JavaScript">
  var tree = new MzTreeView("tree");  tree.icons["property"] = "property.gif";
  tree.icons["css"] = "collection.gif";
  tree.icons["book"]  = "book.gif";
  tree.iconsExpand["book"] = "bookopen.gif"; //展开时对应的图片  tree.setIconPath("./"); //可用相对路径  tree.nodes["0_1"] = "text:WEB 编程";
  tree.nodes["1_100"] = "text:代码示例; data:id=100"; 
  tree.nodes["1_200"] = "text:梅花雪脚本控件集; data:id=200";
  tree.nodes["1_310"] = "text:CSS; icon:css; data:id=310"; 
  tree.nodes["1_320"] = "text:DHTML; data:id=320"; 
  tree.nodes["1_300"] = "text:HTML; data:id=300"; 
  tree.nodes["1_400"] = "text:JavaScript; icon:book; data:id=400";
  tree.nodes["320_322"] = "text:属性; icon: property; data:id=322"; 
  tree.nodes["320_323"] = "text:方法; data:id=323"; 
  tree.nodes["320_324"] = "text:事件; icon:event; data:id=324"; 
  tree.nodes["320_325"] = "text:集合; data:id=325"; 
  tree.nodes["400_407"] = "text:对象; data:id=407"; 
  tree.nodes["400_406"] = "text:方法; data:id=406"; 
  tree.nodes["400_408"] = "text:运算符; data:id=408"; 
  tree.nodes["400_409"] = "text:属性; data:id=409"; 
  tree.nodes["407_1140"] = "text:Date; url:Article.asp; data:id=140";
  tree.nodes["406_1127"] = "text:toString; url:Article.asp; data:id=127";
  tree.nodes["408_1239"] = "text:||; url:Article.asp; data:id=239";
  tree.nodes["409_1163"] = "text:E;  url:Article.asp; data:id=163";  tree.setURL("Catalog.asp");
  tree.setTarget("MzMain");
  //document.write(tree.toString());    //亦可用 obj.innerHTML = tree.toString();
  //obj.innerHTML = tree.toString();
  setTimeout( "tree.focus( '320 ');   tree.expand( 320,   true) ",   20);     
//我想把节点ID为320的节点展开,错在这一句</script>出现的错误提示是一个对话框:节点320没有正确的挂靠在有效节点上!

解决方案 »

  1.   

    你难道没看源代码?
    //点击展开树节点的对应方法
    MzTreeView.prototype.expand   = function(id, sureExpand)
    {
      var node  = this.node[id];
      if (sureExpand && node.isExpand) return;如果第二个参数sureExpand为true,就直接return了。
    另外,第一个参数ID,指的是实际的NODE的ID,而不是你赋予的DATAID,所以应该传"1_320"。
      

  2.   

    不好意思,恍惚了,把if (sureExpand && node.isExpand) return; 看成 if (sureExpand || node.isExpand) return; 了
    它的作用是在已经展开时判断是否还要展开,其实在这里还是要不要都行,因为一开始肯定是未展开状态。主要还是ID的问题,用"1_320"去试。