65.9K
CodeProject 正在变化。 阅读更多。
Home

跨浏览器 (JavaScript/DHTML) 树形视图

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.84/5 (11投票s)

2006年11月10日

CPOL

1分钟阅读

viewsIcon

70370

downloadIcon

1528

一个易于使用的 DHTML 树形视图组件,可在 Firefox 和 IE 中运行。

Sample Image - IE_FF_DHTML_TreeView.png

引言

我需要一个外观不错的树形视图来用于我的网站 (wickedorange.com/vb2005intro),所以我找到了 这篇文章,作者是 D.D. de Kerf,并对其进行了大幅修改。这两篇文章之间的区别纯粹是美观上的;例如,现在有一个 CSS 文件,你可以使用它来轻松更改树的外观。 还有一些“解决方法”来确保它在 Firefox 和 IE 中都能正常工作。

请注意:由于许可协议,我不得不更改图标。原始图标是 IconBuffet Studio 图标包的一部分,随 Visual Basic Express 2005 一起免费提供(如果您注册)。

使用代码

如果您只想开始创建树,请参阅源代码中的 tree.html

代码的使用非常简单。首先,我们包含对 CSS 和 JS 文件的引用

<head> 
 <link href="tree.css" rel="stylesheet" type="text/css" />
 <script src="tree.js" type="text/javascript"></script>
 <title>TreeView Example</title> 
</head>

然后,我们在 body 中添加代码,调用 JavaScript 代码...

  • addExpandCollapseAll” 在树的顶部添加按钮。
  • addNode(text, url, target)” 添加一个普通节点,不包含子项。

我们使用 “startParentNode(text)” 开始一个父节点,它可以包含普通节点和其他父节点。然后我们使用 “endParentNode()” 关闭我们开始的任何父节点。

<body>
<script language="javascript">
    addExpandCollapseAll();

    addNode("WickedOrange.com","http://www.wickedorange.com","mainFrame");

    startParentNode("Search Engines");
        addNode("Google","http://www.google.com","mainFrame");
        addNode("Yahoo","http://www.yahoo.com","mainFrame");
    endParentNode();

    startParentNode("Dev Sites");
          addNode("CodeProject","https://codeproject.org.cn","mainFrame");
        addNode("MSDN","http://www.msdn.com","mainFrame");
         startParentNode("Dev Sites");
              addNode("CodeProject","https://codeproject.org.cn","mainFrame");
            addNode("MSDN","http://www.msdn.com","mainFrame");
             startParentNode("Dev Sites");
                  addNode("CodeProject","https://codeproject.org.cn","mainFrame");
                addNode("MSDN","http://www.msdn.com","mainFrame");
            endParentNode();
        endParentNode();
    endParentNode();
</script>
</body>

关注点

有时,Firefox 无法使用 nextSiblingpreviousSibling 等方式找到子节点,就像 IE 一样,所以我不得不为以后需要修改的每个项目命名;例如,展开时需要更改父节点图像。

历史

目前还没有!

© . All rights reserved.