解决方案 »

  1.   

    网上百度了下,有的说是jquery.js导入顺序的原因,我的导入顺序是①jquery.min.js②jstree.min.js③自己写的js,比如上面自己写的set_type的<script>
      $(function () {
        $('#jstree').jstree();
        $('button').on('click', function () {
          $('#jstree').jstree(true).set_type('child_node_1','glyphicon glyphicon-folder-open');    });
        
      });
      </script>  引入的顺序是正确的啊
      

  2.   

    网上百度说法二:命名冲突,但我这个页面很简单,就几行代码,目测没有冲突的,这里贴出页面整个代码,以供参考:
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <title>jsTree test</title>
      <link href="../css/style.min.css" rel="stylesheet">
    </head><body>
      <div id="jstree">
        <ul>
          <li>Root node 1
            <ul>
              <li id="child_node_1">Child node 1
                <ul>
                  <li>node 1</li>
                  <li>node 2</li>
                </ul>
              </li>
              <li>Child node 2</li>
            </ul>
          </li>
          <li>Root node 2</li>
        </ul>
      </div>
      <button>demo button</button>  <script src="../js/jquery.min.js"></script>
      <script src="../js/jstree.min.js"></script>
      <script>
      $(function () {
        $('#jstree').jstree();
         $('button').on('click', function () {
          $('#jstree').jstree(true).set_type('child_node_1','glyphicon glyphicon-folder-open');
        });
      });
      </script>
    </body>
    </html>
      

  3.   

    补充3:①经过检查发现忘了导入bootStrap了,因为用到了glyphicon图标,导入后错误不变
    ②又想到会不会是没有导入插件的原因"plugins" : [ "types" ],在自己写的js部分加了$('#jstree').jstree({ plugins : ["types"] });后,不再报not a function错误,但是点击没有任何反应,这个click事件是想将id为child_node_1的图标变成打开的文件夹.
    最后整个页面的代码为<%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <title>jsTree test</title>
      <link href="../css/bootstrap.min.css" rel="stylesheet">
      <link href="../css/style.min.css" rel="stylesheet">
    </head><body>
      <div id="jstree">
        <ul>
          <li>Root node 1
            <ul>
              <li id="child_node_1">Child node 1
                <ul>
                  <li>node 1</li>
                  <li>node 2</li>
                </ul>
              </li>
              <li>Child node 2</li>
            </ul>
          </li>
          <li>Root node 2</li>
        </ul>
      </div>
      <button>demo button</button>  <script src="../js/jquery.min.js"></script>
      <script src="../js/bootstrap.min.js"></script>
      <script src="../js/jstree.min.js"></script>
      <script>
      $(function () {
        $('#jstree').jstree({ plugins : ["types"] });
         $('button').on('click', function () {
          $('#jstree').jstree(true).set_type('child_node_1','glyphicon glyphicon-folder-open');
         });
      });
      </script>
    </body>
    </html>
    为什么改后点击按钮没有任何反应,set_type需要的两个参数也传进去了,求大侠指点
      

  4.   

    我也不太懂。你应该吧jquery第一个引入?在引入css试试