JQuery DynaTree не работает - PullRequest
       3

JQuery DynaTree не работает

2 голосов
/ 10 января 2012

Я пытаюсь заставить 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>

Есть идеи?Спасибо!Mark

Ответы [ 2 ]

3 голосов
/ 11 января 2012

Вы должны включить jquery и jquery-ui до dynatree

0 голосов
/ 11 января 2012

Я вижу, вы смешали два примера одновременно. Вы пытаетесь инициировать 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 - init из объекта JS)

<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"}
      ]
    });
});
...