`
heioo
  • 浏览: 75440 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jstree 添加双击事件 且 实现双击展开和关闭

阅读更多
转载自:http://www.cnblogs.com/coolcode/archive/2010/07/26/jstree_add_event_for_node_dblclick.html

jquery.jstree 增加节点的双击事件
jstree

本文基于  jsTree 1.0-rc1 版本增加节点的双击事件。

jsTree 是基于jquery的树插件,支持拖放、复制、删除、快捷键、多选、自定义节点图标、自定义右键菜单、跨页面保存状态等等,总之我想到的它基本上都有了,而且最值得表扬的是它让人感觉一点都不慢哦。

jsTree有节点选择事件,即

.bind("select_node.jstree", function(e, data) {
             //alert(data.rslt.obj.attr("id") + ":" + data.rslt.obj.attr("rel"));
        })



其实我认为它更像是节点的单击事件,因为每次点节点的时候它都会触发,不管之前该节点是否已经被选中。

近日做个文件管理的东东,需要用到节点的双击事件,如双击某个节点打开该节点的编辑页面。

image

jstree虽然有双击事件,但是并非针对节点的,而是你双击树所在区域就会触发,如上图任何一个地方。

离节点双击事件最接近的应该就是节点选择事件,因此又是“照葫芦画瓢”啦。
分析

在第833行 this.get_container() 后是节点的单击事件

.delegate("a", "click.jstree", $.proxy(function (event) {
                        event.preventDefault();
                        this.select_node(event.currentTarget, true, event);
                    }, this))



同样我再这里插入节点双击事件

.delegate("a", "dblclick.jstree", $.proxy(function(event) {
    event.preventDefault();
    this.dblclick_node(event.currentTarget, true, event);
    }, this))



接着,我再实现 dblclick_node 方法就可以了。

在第928行找到 select_node 的代码,比较复杂。但里面90%对于双击来说是没有用处的,如处理单选、多选、保存选择结果到cookies等。因此 dblclick_node 方法的实现要比 select_node 简单很多。

dblclick_node: function(obj, check, e) {
    obj = this._get_node(obj);
    if (obj == -1 || !obj || !obj.length) { return false; }
    this.__callback({ "obj": obj });
},



OK,就这样了。
使用例子

跟 select_node 用法一样

.bind("dblclick_node.jstree", function(e, data) {
             //alert(data.rslt.obj.attr("id") + ":" + data.rslt.obj.attr("rel"));
        })



此外:以上只是实现了双击事件,我们在以上基础上添加展开和关闭事件
$.jstree.plugin("core", {…………………………


_fn : {
init : function () { (1)在此处加入代码var $jstree = this;





(2)将var trgt = $(event.target).parent().find('ins').get(0);
$jstree.toggle_node(trgt);加入到.bind("dblclick.jstree", function (event) { //为树节点添加双击事件

OK!





分享到:
评论

相关推荐

    jquery.jstree 增加节点的双击事件代码

    要增加双击节点的事件处理,需要在jstree的单击事件之后添加双击事件。这可以通过jQuery的委托事件处理方式来实现,即使用".delegate()"方法绑定事件处理函数。在代码中,"a"标签是jstree中用于显示节点文本的部分,...

    jsTree大集合

    - **节点操作**:jsTree提供了丰富的API来操作树节点,如添加、删除、移动、复制、展开/折叠等。 - **事件监听**:可以监听节点点击、双击、右键点击等事件,实现节点的交互行为。 - **搜索功能**:内置搜索插件...

    基于vue、iview实现tree组件可拖拽、双击编辑

    在这个场景下,我们将探讨如何利用Vue和IView实现一个具有拖拽和双击编辑功能的Tree组件。 首先,让我们了解一下`Tree`组件。在Web应用中,`Tree`组件通常用于展示层级关系的数据,如文件系统、组织结构等。IView中...

    js Tree 树 目录

    3. **事件处理**:库可能会提供点击、双击、展开/折叠等事件的监听和回调函数,以便开发者可以响应用户的交互行为。 4. **数据绑定**:可能支持从JSON或其他数据格式动态加载和更新树结构。 5. **动画效果**:为了...

    js tree 控件

    JavaScript Tree控件是一种在网页上实现可交互的树形数据结构的工具,它允许用户以图形化的方式展示和操作层次化的信息。在本场景中,我们讨论的是一个名为"js tree"的特定库,它提供了丰富的功能和良好的用户体验,...

    开源最好的js tree zTree_v3

    zTree是基于JavaScript的开源树形插件,被誉为“开源最好的js tree”。它以其强大的功能、灵活的配置、友好的API和出色的性能,深受开发者喜爱。在V3版本中,zTree进一步提升了性能和兼容性,使其能够更好地适应各种...

    jstree测试

    通过简单的API调用,开发者可以轻松地初始化树、添加、删除或修改节点,以及实现节点的展开、折叠、选择和拖放等功能。 **JStree的主要特性** 1. **可配置性**:JStree允许开发者自定义各种选项,如加载数据的方式...

    jstree的简单实例

    除了监听节点变化事件之外,我们还可以处理节点的选中事件(`select_node.jstree`),以便实现如点击节点展开或收缩等交互: ```javascript $("#treeview1").bind("select_node.jstree", function(e, data) { if ...

    各种样式的js实现的treeMenu

    - **jQuery Tree Plugin**:基于jQuery的插件,如jstree,提供了丰富的API和主题。 - **Angular Tree Component**:对于Angular应用,有专门的树组件库,如ng-tree-antd或angular-tree-component。 - **React ...

    js树控件,大家分享

    树控件的核心功能包括节点的添加、删除、展开、折叠、选择等,同时支持事件监听,如点击、双击、拖拽等,为用户提供丰富的交互体验。在"jsTree"这个特定的库中,开发者可以利用其API和插件系统来定制化树形结构的...

    JavaScript实现树状结构展现

    我们可以为每个节点添加单击和双击事件: ```javascript function addEventListeners(node, clickHandler, dblClickHandler) { node.element.addEventListener('click', clickHandler); node.element....

    一个好用的js树 梅花雪MzTreeView

    通过阅读源码,你可以学习到如何使用JavaScript和可能的库(如jQuery)来实现树形结构的渲染、节点的增删改查以及事件处理等功能。这对于提升你的JavaScript编程技巧和理解Web开发中的数据可视化技术是非常有价值的...

    easy-tree:原生js实现树形图

    "easy-tree"库提供了一系列API,允许开发者方便地创建、添加、删除和修改树节点。这些API可能包括但不限于以下功能: 1. 初始化树:通过传入预先定义好的树形数据,如JSON格式的数据,快速生成树形结构。 2. 添加...

    基于iView和he-tree-vue的一个拖拽树形组件

    "基于iView和he-tree-vue的一个拖拽树形组件"是这样的一个实用工具,它结合了两个流行的Vue.js库的功能,为开发者提供了一个强大且灵活的树形组件。这个组件不仅具备基本的树形展示能力,还包含了丰富的交互特性,如...

    bootstrap tree

    总之,Bootstrap Tree 是一个强大且灵活的工具,它结合了 Bootstrap 的优雅设计和便捷的前端开发体验,为构建具有树形结构的用户界面提供了便利。通过深入了解其特性和使用方法,开发者可以创建出高效、直观且易于...

    d3js呈现中国城市名称数据树

    描述中提到的“单节点单击和双击事件互不影响的处理”,意味着开发者已经实现了这样的功能:单击可能用于展开/折叠节点,双击可能用于查看节点详情或执行其他操作,且这两者之间不会互相干扰。 **模拟JSON数据请求*...

    z-tree很好用的一个传统树

    3. **事件系统**:它内置了丰富的事件机制,如点击、双击、拖拽等,开发者可以通过监听这些事件来实现交互逻辑。 4. **节点操作**:提供添加、删除、移动节点等操作,支持节点的层级关系管理,便于构建复杂的业务...

Global site tag (gtag.js) - Google Analytics