【问题标题】:JsTree Click EventJsTree 点击事件
【发布时间】:2013-02-14 17:22:28
【问题描述】:

您好,我是 JsTree 的新手,我有一个关于活动的问题。 我们将树结构的东西称为 LeftSide,单击树上的一个节点后呈现的内容称为 RightSide。 我可以做的是,你在 LeftSide 上单击一个节点,然后在 RightSide 会呈现一个子页面。

现在,我需要点击右侧的某个东西(这个“东西”可以是左侧的节点名称),它会在右侧呈现一个子页面,就像单击左侧的那个节点一样。

我不确定我是否把我的问题说清楚了。

关键是我不知道如何描述我的问题并在网上搜索它。 因此,如果您不知道确切的答案,您只需告诉我我应该寻找哪个方向即可。 (如果你让我看官方文档,请注明是哪一部分而不是整个文档。)

感谢任何帮助!

【问题讨论】:

  • RightSide 是 jsTree 的一部分吗?

标签: javascript jstree


【解决方案1】:

我不认为“select_node.jstree”事件是最好的解决方案,因为当你刷新树时,它也会被触发。下面的sn-p代码是我使用的方式:

$("#categories_tree").on("click", ".jstree-anchor", function(e) {
   var id = $("#categories_tree").jstree(true).get_node($(this)).id;
})

编辑:修正了一个右括号

【讨论】:

  • 这是一个更好的答案,因为按下它会触发接受的答案。
【解决方案2】:

您想监听select_node.jstree 事件,并获取选定的节点。然后,您可以在页面右侧做您想做的事情。

$("#jstree_id").on('select_node.jstree', function(e) {
    // gather ids of selected nodes
    var selected_ids = [];
    $("#jstree_id").jstree('get_selected').each(function () { 
        selected_ids.push(this.id); 
    }); 
    // do summit with them
    $('#RightSide').text('selected '+selected_ids);
});

编辑为bind 已被弃用,取而代之的是on

【讨论】:

  • 哇,没想到有人会回答这个恐龙问题......我相信你的解决方案有效,尽管几个月前我找到了我的解决方案。感谢您的回答。
  • 谢谢:)。很多教程说你必须使用“on”,但这不起作用。
  • @BradBird 这不是这个答案的重点,只是它的年龄影响。bind 在 jQuery 3.0 中已弃用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-17
  • 2023-03-27
相关资源
最近更新 更多