jQuery DynaTree无法正常工作

时间:2012-01-10 19:12:23

标签: jquery jsp dynatree

我试图让DynaTree(第一次使用它)运行起来很幸运 - “树”只是显示为常规的HTML列表。我确定这是微不足道的,但我没有看到它。

这是我的文件结构: DynaTree project files

这是树所在的页面(result.jsp):

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>IDT HL7 Search Results</title>
  <link rel="stylesheet" type="text/css" href="css/messaging.css" />
  <link rel="stylesheet" type="text/css" href="css/ui.dynatree.css" />
  <script type="text/javascript" src="js/jquery-1.7.1.js"></script>
  <script type="text/javascript" src="js/jquery.dynatree.js"></script>
  <script type="text/javascript" src="js/jquery-ui-1.8.16.custom.min.js"></script>
  <script type="text/javascript" src="js/jquery.cookies.2.2.0.js"></script>
  <!-- Add code to initialize the tree when the document is loaded: -->
  <script type="text/javascript">
$(document).ready(function() {
    // Attach the dynatree widget to an existing <div id="tree"> element
    // and pass the tree options as an argument to the dynatree() function:
    $("#tree").dynatree({
      onActivate: function(node) {
        // A DynaTreeNode object is passed to the activation handler
        // Note: we also get this event, if persistence is on, and the page is reloaded.
        alert("You activated " + node.data.title);
      },
      children: [
        {title: "Item 1"},
        {title: "Folder 2", isFolder: true, key: "folder2",
          children: [
            {title: "Sub-item 2.1"},
            {title: "Sub-item 2.2"}
          ]
        },
        {title: "Item 3"}
      ]
    });
    $("a").click(function() {
     alert("Hello world!");
    });
  });
  </script>
</head>
<body>
<h2 class="center">IDT HL7 Search Results</h2>
<div id="search">
    <fieldset class="search-fields">
        <legend>Currently viewing</legend>
        Site: <input type="text" name="currentSite" disabled="disabled" value=<%= request.getParameter("searchFor") %> />
        CSID: <input type="text" name="currentCsid" disabled="disabled" value=<%= request.getAttribute("csidValue") %> />
        RCR:  <input type="text" name="currentRcr"  disabled="disabled" />
        <a href="index.jsp"><b>New Search</b></a>
    </fieldset>
</div>
<br/>
<div>
    <form>
        <input type="checkbox" name="filterBy" value="Filter by:" /> Filter results by:
        <input type="text" name="filterBy" />
    </form>
</div>
<br/>
<div id="content">
   <div id="sub-left">
    <fieldset class="search-fields">
        <legend>Files Found</legend>
        <!-- Add a <div> element where the tree should appear: -->
        <div id="tree"> 
            <ul>
       <li>Orders
         <ul>
           <li>From Client
              <ul>
                <li> document 1.1.1</li>
                <li> document 1.1.2</li>
               </ul>
            </li>  
            <li>To Lab
               <ul>
                 <li>document 1.2.1</li>
                 <li>document 1.2.2</li>
               </ul>
           </li>
        </ul>
     </li>
     <li> Results
        <ul>
          <li> From Lab
            <ul>
               <li>document 2.1.1</li>
               <li>document 2.1.2</li>
            </ul>
          </li>
            <li>To Client
               <ul>
                 <li>document 2.2.1</li>
                 <li>document 2.2.2</li>
               </ul>
           </li>
        </ul>
      </li>
    </ul>
        </div>
      </fieldset>
   </div>
   <div id="sub-right">
     <fieldset class="search-fields">
        <legend>Selected File Contents</legend>
        <textarea rows="14" wrap="soft" readonly="readonly">
(select via tree on left)
        </textarea>
     </fieldset>
   </div>
   <div class="clear-both"></div>
</div>
</body>
</html>

有什么想法吗?谢谢!标记

2 个答案:

答案 0 :(得分:3)

你必须在 dynatree之前包含jquery和jquery-ui

答案 1 :(得分:0)

我看到你一次混合两个例子。您尝试在同一时间启动dynatree和javascript对象。仅使用一个来启动:

1)保留无序列表,从脚本中删除生成 (如http://wwwendt.de/tech/dynatree/doc/samples.html - 默认)

<div id="tree">
    <ul>
        <li>Orders
        <ul>
            <li>From Client
            <ul>
                <li> document 1.1.1</li>
                <li> document 1.1.2</li>
            </ul>
            </li>
            <li>To Lab
            <ul>
                <li>document 1.2.1</li>
                <li>document 1.2.2</li>
            </ul>
            </li>
        </ul>
        </li>
        <li> Results
        <ul>
            <li> From Lab
            <ul>
                <li>document 2.1.1</li>
                <li>document 2.1.2</li>
            </ul>
            </li>
            <li>To Client
            <ul>
                <li>document 2.2.1</li>
                <li>document 2.2.2</li>
            </ul>
            </li>
        </ul>
        </li>
    </ul>
</div>

$(document).ready(function() {
    $("#tree").dynatree();
});

2)保留javascript对象,删除无序列表 (比如在http://wwwendt.de/tech/dynatree/doc/samples.html - 来自JS对象的init)

<div id="tree"></div>

$(document).ready(function() {
$("#tree").dynatree({
      onActivate: function(node) {
        // A DynaTreeNode object is passed to the activation handler
        // Note: we also get this event, if persistence is on, and the page is reloaded.
        alert("You activated " + node.data.title);
      },
      children: [
        {title: "Item 1"},
        {title: "Folder 2", isFolder: true, key: "folder2",
          children: [
            {title: "Sub-item 2.1"},
            {title: "Sub-item 2.2"}
          ]
        },
        {title: "Item 3"}
      ]
    });
});