标签: jstree

为不同的节点类型配置jstree右键单击contextmenu

我在网上看到了一个示例,展示了如何自定义jstree右键单击上下文菜单的外观(使用contextmenu插件).

例如,允许我的用户删除"文档"而不删除"文件夹"(通过隐藏文件夹的上下文菜单中的"删除"选项).

现在我找不到那个例子.谁能指出我正确的方向?官方文档没有真正帮助.

编辑:

由于我希望默认的上下文菜单只有一个或两个小的更改,我宁愿不重新创建整个菜单(当然,如果这是唯一的方法我会的).我想做的是这样的事情:

"contextmenu" : {
    items: {
        "ccp" : false,
        "create" : {
            // The item label
            "label" : "Create",
            // The function to execute upon a click
            "action": function (obj) { this.create(obj); },
            "_disabled": function (obj) { 
                alert("obj=" + obj); 
                return "default" != obj.attr('rel'); 
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用 - 创建项目始终被禁用(警报永远不会出现).

jquery contextmenu jstree

80
推荐指数
4
解决办法
7万
查看次数

如何刷新jsTree的内容?

我已经加载了一个带有AJAX调用的jsTree,它返回JSON数据.如何刷新树以便重新加载其内容?

jquery jstree

53
推荐指数
4
解决办法
7万
查看次数

如何在jquery Jstree中打开所有节点?

我正在使用以下代码:

$("#treeview").jstree();
$("#treeview").jstree('open_all');
Run Code Online (Sandbox Code Playgroud)

使用以下html:

<div id="treeview">
  <ul>
    <li>
      <a href="#">rubentebogt</a>
      <ul>
        <li>
          <a href="#" onclick="goTo('index.php?module=alarm&amp;pagina=dashboard&amp;id=6',false);">Beneden</a>
        </li>
        <li>
          <a href="#" onclick="goTo('index.php?module=alarm&amp;pagina=dashboard&amp;id=7',false);">Boven</a>
        </li>
      </ul>
    </li>
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

我的问题是所有节点都保持关闭状态,我无法用jstree打开它们('open_all');

javascript jquery jstree

40
推荐指数
4
解决办法
5万
查看次数

如何在Ember中使用jsTree插件

我使用jsTree插件在我的产品中渲染大量的树节点.

现在我正在迁移到Ember,需要在Ember中实现jsTree插件.

我写了一个Ember组件来使用jsTree渲染我的文件夹结构.

我的组件:

<script type="text/x-handlebars" data-template-name="components/temp-tree">
    <div id="treediv">Tree Data</div>
</script>

App.TempTreeComponent = Ember.Component.extend({
    didInsertElement: function(){
        var self = this;
        self.$().jstree({
            'plugins':["contextmenu", "dnd"],
            'core' : {
                'data' : [
                    'Simple root node',
                    { 
                        'text' : 'Root node 2',
                        'state' : {
                            'opened' : true,
                            'selected' : true
                        },
                        'children' : [
                            {'text' : 'Child 1'},
                            'Child 2'
                        ]
                    } 
                ], 
                'check_callback': true
            }
        })
        .on('rename_node.jstree', function(e, data) {
            alert('rename');
        })
        .on('delete_node.jstree', function(e, data) {
            alert('delete');
        });
    }, 
    actions: …
Run Code Online (Sandbox Code Playgroud)

javascript jquery jstree ember.js

40
推荐指数
1
解决办法
1694
查看次数

如何以编程方式选择特定节点?

我有一个jstree.我想选择绑定到id为158的位置的对象的节点.这可行,但似乎很愚蠢.这样做的惯用方法是什么?

var $tree = $('.jstree', myContext),
    node = $tree.find('li').filter(function() { 
        return ( $(this).data().location || {}).id === 158;
    });
$tree.jstree('select_node', n)
Run Code Online (Sandbox Code Playgroud)

jstree

36
推荐指数
4
解决办法
6万
查看次数

jsTree - 根据需要通过ajax加载子节点

我正在尝试让jsTree处理子节点的按需加载.我的代码是这样的:

jQuery('#introspection_tree').jstree({ 
        "json_data" : {
            "ajax" : {
                url : "http://localhost/introspection/introspection/product"
            }
    },
    "plugins" : [ "themes", "json_data", "ui" ]
    });

从通话中返回的json是

[
  {
    "data": "Kit 1",
    "attr": {
      "id": "1"
    },
    "children": [
      [
        {
          "data": "Hardware",
          "attr": {
            "id": "2"
          },
          "children": [

          ]
        }
      ],
      [
        {
          "data": "Software",
          "attr": {
            "id": "3"
          },
          "children": [

          ]
        }
      ]
    ]
  }
  .....
]

每个元素都可能有很多孩子,树会很大.目前这是一次加载整个树,这可能需要一些时间.当用户打开子节点时,如何实现按需加载子节点,我该怎么办?

提前致谢.

ajax jstree

31
推荐指数
3
解决办法
5万
查看次数

如何更改jstree中的图标?

我有以下代码:

$('.wpFolders.co_files').bind('select_node.jstree', function (event, data) {
            getFileById(data.args[0].hash.replace('#', ''));
        }).jstree({
            'plugins' : ['html_data','themes','ui','types'],
            'ui' : {
                'select_limit' : 1
            },
            'core' : {
                'animation' : 0
            },
            'types': {
                'default' : {
                    'icon' : {
                        'image' : '/admin/views/images/file.png'
                    }
                }
            }
        });
Run Code Online (Sandbox Code Playgroud)

我有一个基本的无序列表,我希望显示为文件列表.我正在尝试使用"类型"来更改图标,但我不能为我的生活找出如何做到这一点.我检查了他们的文档链接,即使使用几乎相同的代码似乎也没有发生.

根据我对上面代码的理解,我的树的默认类型应该有我指定的图标但没有任何反应,我得到的是默认文件夹图标.

有任何想法吗?很抱歉,如果问题看起来很基本,但我发现在尝试做基本的事情时很难遵循文档.:)

javascript jstree

28
推荐指数
6
解决办法
7万
查看次数

单击节点时打开分支?

我在这里遇到了jsTree.到目前为止,它可以工作,我可以使用[+]图标浏览和扩展节点,并在单击节点时打开页面,但我还是希望它在有人点击某个节点时展开所有直接节点.

我看了看周围至少2个小时但是找不到任何东西.官方网站不是很有帮助,因为他们没有足够的例子,而且没有很好的记录.看看这个,但对我来说也不起作用:http: //luban.danse.us/jazzclub/javascripts/jquery/jsTree/reference/_examples/2_operations.html

我甚至没有在firebug中收到错误消息

所以这是我的代码现在的样子,树初始化:

$(function () {
    $("#jstree").jstree({
    ....
Run Code Online (Sandbox Code Playgroud)

单击节点触发的功能

.delegate("a","click", function (e) { 
    //click on node
    var page_id = $(this).parent().attr("page_id");
    var idn = $(this).parent().attr("id").split("_")[1];
    /*
            dosnt seem to work either...
    $(this).jstree("openNode", $("#node_"+idn));
    $(this).jstree("openNode", "#node_"+idn);
    */
    page = "index.php?page_id="+page_id;
    //location.href = page;
})
Run Code Online (Sandbox Code Playgroud)

.bind也没有工作:

$(this).bind("open_node.jstree", function (event, data) { 
    if((data.inst._get_parent(data.rslt.obj)).length) { 
        data.inst._get_parent(data.rslt.obj).open_node(this, false); 
    } 
})
Run Code Online (Sandbox Code Playgroud)

有谁看到我在这里失踪了......?

javascript tree jquery jstree

26
推荐指数
3
解决办法
1万
查看次数

如何在jsTree中获取所选节点的ID?

如何在jsTree中获取所选节点的id ?

function createNewNode() {
  alert('test');
  var tree = $.tree.reference("#basic_html");
  selectedNodeId = xxxxxxxxx; //insert instruction to get id here
  tree.create({ data : "New Node Name" }, selectedNodeId);
}
Run Code Online (Sandbox Code Playgroud)

javascript jquery jstree

24
推荐指数
4
解决办法
8万
查看次数

使用复选框时删除jstree中的文件夹图标

如何使用复选框插件删除jstree中的文件夹图标?

$('#div').jstree({
        "ui": {
            "theme_name": "checkbox"
        },
        "theme" : { "icons": false },
        "json_data": {
            "ajax": {
                "type": "POST",
                "url": "@Url.Action("Tree")"
            }
        },
        "plugins": ["json_data", "checkbox", "ui", "themes"]
    });
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但它显示复选框图标以及文件夹图标.

jstree

23
推荐指数
2
解决办法
2万
查看次数

标签 统计

jstree ×10

jquery ×6

javascript ×5

ajax ×1

contextmenu ×1

ember.js ×1

tree ×1