天天看點

jsTree 預覽 與入門

概述:

在做權限需要使用jsTree,順便學習翻譯部分一下jsTree,jsTree是jquery插件,它提供可以互動的樹形結構。在MIT許可下,它具有完全免費的,開源和分布式的特點,jsTree也是很容易進行擴充,主題化和配置化。它支援HTML和JSON資料源和Ajax加載。

jsTree的函數恰當應用的盒模型(内容盒和邊緣盒),它可以作為一個AMD(異步子產品加載機制)子產品。它已經被内置到手機主題的響應式設計中,它也很容易進行自定義。它使用的JQuery的事件系統。在樹形中為衆多事件綁定回調是非常随便和容易的。

1. 下載下傳 jsTree 或使用 CNDJS線上加載

如果你選擇下載下傳的話-所有你需要的檔案都在你下載下傳的dist/檔案夾下

2.引入一個jsTree 主題

主題本身将會自動加載,但是最好的實踐就是将相關的css檔案引入。

如果你本地下載下傳的,根據具體路徑引用:

<link rel="stylesheet" href="dist/themes/default/style.min.css" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  />
           

如果你使用CDNJS線上加載方法:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/themes/default/style.min.css" target="_blank" rel="external nofollow"  />
           

3.建構一個容器

這個容器将會用來裝你設定的樹。一個<div>标簽就足夠了,這個例子中有一個内部<ul>無序清單标簽,沒有其他資料源配置(例如JSON)

<div id="jstree_demo_div"></div>
           

4.引入JQuery

jsTree要求Jquery1.9.0及以上的版本,你可以使用CND版或者是本地下載下傳的Jquery

例如CND版

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.1/jquery.min.js"></script>
           

5.引用jsTree

如果你已經下載下傳到你本地:對于是生産環境采用壓縮版:dist/jstree.min.js,對于開發調試采用原版:dist/jstree.js

<script src="dist/jstree.min.js"></script>
           

如果是CDNJS:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/jstree.min.js"></script>
           

6. 建立一個執行個體

一旦網頁的DOM結構加載完畢之後,你就可以執行個體化jstree執行個體

$(function () { $('#jstree_demo_div').jstree(); });
           

7.監聽事件

jsTree 使用事件實作使用者和樹清單進行互動。對于tree綁定事件最簡單就是點選事件,API文檔提供一系列事件詳細說明:點選打開連結

$('#jstree_demo_div').on("changed.jstree", function (e, data) {
  console.log(data.selected);
});
           

8.與你建立的執行個體進行互動

一旦執行個體化之後,它就可以進行調用方法,詳情的方法API:https://www.jstree.com/api/#/?q=(

三種選中的方法:

$('button').on('click', function () {
  $('#jstree').jstree(true).select_node('child_node_1');
  $('#jstree').jstree('select_node', 'child_node_1');
  $.jstree.reference('#jstree').select_node('child_node_1');
});
           

9.完整的代碼

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>jsTree test</title>
  <!-- 2 load the theme CSS file -->
  <link rel="stylesheet" href="dist/themes/default/style.min.css" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  />
</head>
<body>
  <!-- 3 setup a container element -->
  <div id="jstree">
    <!-- in this example the tree is populated from inline HTML -->
    <ul>
      <li>Root node 1
        <ul>
          <li id="child_node_1">Child node 1</li>
          <li>Child node 2</li>
        </ul>
      </li>
      <li>Root node 2</li>
    </ul>
  </div>
  <button>demo button</button>

  <!-- 4 include the jQuery library -->
  <script src="dist/libs/jquery.js"></script>
  <!-- 5 include the minified jstree source -->
  <script src="dist/jstree.min.js"></script>
  <script>
  $(function () {
    // 6 create an instance when the DOM is ready
    $('#jstree').jstree();
    // 7 bind to events triggered on the tree
    $('#jstree').on("changed.jstree", function (e, data) {
      console.log(data.selected);
    });
    // 8 interact with the tree - either way is OK
    $('button').on('click', function () {
      $('#jstree').jstree(true).select_node('child_node_1');
      $('#jstree').jstree('select_node', 'child_node_1');
      $.jstree.reference('#jstree').select_node('child_node_1');
    });
  });
  </script>
</body>
</html>
           

效果如下:

jsTree 預覽 與入門

繼續閱讀