【问题标题】:How to force re-sort jsTree?如何强制重新排序jsTree?
【发布时间】:2019-08-17 18:31:32
【问题描述】:

如何强制树重新排序? 我添加了菜单来更改排序顺序 ASC/DESC:

"Sort": {
    "separator_before": false,
    "separator_after": true,
    "label": "Sort",
    "action": false,
    "submenu": {
        "Ascending": {
            "seperator_before": false,
            "seperator_after": false,
            "label": "Ascending",
            action: function (obj) {
                setSortFunction('asc');
                var selector = '#treeview';
                var root = $(selector).jstree(true).get_node("1");//get_node("root");
                $(selector).jstree(true).sort(root, true);
                $(selector).jstree(true).redraw_node(root, true);
            }
        },
        "Descending": {
            "seperator_before": false,
            "seperator_after": false,
            "label": "Descending",
            action: function (obj) {
                setSortFunction('desc');
                var selector = '#treeview';
                var root = $(selector).jstree(true).get_node("1");//get_node("root");
                $(selector).jstree(true).sort(root, true);
                $(selector).jstree(true).redraw_node(root, true);
            }
        }
    }

它会更改 asc/desc 顺序,但我需要使用新顺序重新排序现有树。我已经尝试按照上面的代码进行操作,但它不起作用。 怎么了?

【问题讨论】:

    标签: javascript html jstree


    【解决方案1】:
    var sortType = "asc";
    
    
    
    $(document).ready(function() {
    
      $("#test").on("changed.jstree", function(e, data) {
    
      }).jstree({
        plugins: ['checkbox',  'changed', 'contextmenu', 'sort'],
        contextmenu: {
          select_node: false,
          items: contextMenu
        },
        checkbox: {
          three_state: false
        },
        sort : function(a, b) {
            a1 = this.get_node(a);
            b1 = this.get_node(b);
            if (sortType === "asc"){
                return (a1.text > b1.text) ? 1 : -1;
            } else {
                return (a1.text > b1.text) ? -1 : 1;
            }},
        core: {
          data: [{
            id: "padre1",
            parent: "#",
            text: "Padre 1",
            icon: 'fa fa-star text-warning'
          }, {
            id: "padre2",
            parent: "#",
            text: "Padre 2"
          }, {
            id: "id3",
            parent: "padre1",
            text: "Figlio 1 di padre 1"
          }, {
            id: "id4",
            parent: "padre1",
            text: "Figlio 2 di padre 1"
          }, {
            id: "id5",
            parent: "padre2",
            text: "Figlio 1 di padre 2"
          }, {
            id: "id6",
            parent: "id5",
            text: "Figlio 1 di figlio 1 di padre 2"
          }, {
            id: "id7",
            parent: "id5",
            text: "Figlio 2 di figlio 1 di padre 2"
          }, {
            id: "id8",
            parent: "id5",
            text: "Figlio 3 di figlio 1 di padre 2"
          }, {
            id: "id9",
            parent: "#",
            text: "Figlio 3 di figlio 1 di padre 2"
          }]
        }
      });
    });
    
    function contextMenu(node) {
      var items = {};
        items.selezionaTutti = {
          label: 'Seleziona tutti',
          icon: 'fa fa-check-square',
          action: function(questo) {
            console.log(this);
            console.log(questo);
          }
        }
    
        items.asc = {
          "seperator_before": false,
                "seperator_after": false,
                "label": "Ascending",
                action: function (obj) {
                    setSortFunction('asc');
                    var selector = '#test';
    
                    $(selector).jstree(true).refresh();
                }
        }
    
         items.desc = {
         "seperator_before": false,
                "seperator_after": false,
                "label": "Descending",
                action: function (obj) {
                    setSortFunction('desc');
                    var selector = '#test';
    
                    $(selector).jstree(true).refresh();
                }
        }
    
    
    
      return items;
    }
    
    function setSortFunction(sort){
     sortType = sort;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-11
      • 1970-01-01
      • 2013-04-14
      • 1970-01-01
      • 2021-09-13
      • 2012-08-27
      • 1970-01-01
      相关资源
      最近更新 更多