刚刚解决了一个小问题,就迫不及待的将解决办法发给大家。
我写的博客基本上都是自己在开发的时候解决的问题。
今天的问题可能技术含量并不是很高,但是花了我很长时间,因为我对js节点不是很熟。记录下来一是为了和大家分享,二是更好的认识问题。
问题描述:有一个js树形菜单,右键单击节点弹出操作菜单。要解决的是只有在根节点上“新建”菜单才生效,其他节点“新建”菜单无效。预期效果如下
解决办法: 在控制新建菜单的JS代码片段中加入红色字体的代码片:
create : {
label : "新建",
icon : "create",
visible : function (NODE, TREE_OBJ) {
if(NODE[0].parentNode.childNodes.length > 1){return false;}
if(null != NODE && NODE.length != 1) {return 0;}
return TREE_OBJ.check("creatable", NODE); },
action : function (NODE, TREE_OBJ) { TREE_OBJ.create(false, TREE_OBJ.get_node(NODE[0])); },
separator_after : true
}
上面红色代码解释:
获取当前节点的父节点的子节点的总个数。也就是说,如果当前节点是根节点那么它就没有根节点,也就没有所谓的子节点总数。(但是有一点问题,经过js调试发现,在当前是根节点时,显示的长度是1.我的理解是null.还有一个疑问,怎么在博客上贴上图片。)
反之,如果当前节点不是根节点,那么获取它的根节点的子节点个数就是当前树形菜单根节点的子节点的总数。
前面的一点疑问,直接导致了在这段代码片的一个小BUG,当根节点只有一个子节点,也就是说当前树形菜单只有两个节点的时候,程序无效。因为这两个节点获取的总数都是1.
好了,问题阐述结束。
现在博客上还有些文章没有补全的,一是因为没有找到好的额解决办法,二是自己确实很懒,我觉得程序懒应该可以理解吧,呵呵。之后会陆续的发一些自己的开发经验。
在这里小小的打个广告,我是程序员,有两年开发经验,对程序和IT比较热爱。希望能结识志同道合的同志,特别是女同志。
分享到:
相关推荐
以下是对VRML节点及其相关知识点的详细说明: 1. **节点定义**:在VRML中,节点是构成场景的基本构建块。每个节点都代表一个特定的3D元素,如几何形状、光照、摄像机、纹理或其他行为。节点由一系列属性组成,这些...
在"VRML 节点参考手册"中,你将找到关于VRML中不同节点的详尽信息。这些节点是构建VRML场景的基本单元,每个节点都有特定的功能,负责处理场景的不同方面。以下是一些主要的VRML节点类型及其用途: 1. **Transform...
### KETTLE 节点使用说明 #### 一、使用 SQL 查询转换(Transform SQL Query) 通过编写 SQL 语句来查询并转换数据。此步骤允许用户直接在 Kettle 中执行复杂的 SQL 查询,以便从数据库中提取所需的数据集。 ####...
例如,如果购物车页面有一个特定的ID为"cart-items"的`<div>`元素,我们可以使用JavaScript的`document.getElementById()`方法获取这个节点: ```javascript var cartDiv = document.getElementById('cart-items');...
幸运的是,在 JavaScript 中有多种方法可以用来获取 DOM 节点,下面将对这些方法进行详细的介绍。 #### 一、通过 `document` 获取 1. **`document.getElementById(elementId)`** - **说明**:通过元素的 ID 来...
节点点击事件通常通过JavaScript的addEventListener或attachEvent方法来添加,事件处理函数则根据业务需求进行定制。 动态绑定数据是DTree的另一个重要特性,这意味着可以在运行时根据服务器返回的数据动态构建树...
在JavaScript中,我们可以用对象表示树的节点,例如: ```javascript function TreeNode(id, name, children) { this.id = id; this.name = name; this.children = children || []; // 子节点数组 } ``` 接着,...
"素材说明.txt"可能是关于文本框获取节点相关操作的示例或解释,而"jsucai.com"可能是一个教学网站或资源库,提供了更多关于JavaScript和前端开发的学习资料。如果你需要进一步的信息,可以查看这两个资源。 总结来...
在实际项目中,`main.js`文件很可能是实现这些功能的地方,而`README.txt`文件可能包含了关于如何使用这些代码的说明和示例。 通过理解树的概念、节点的数据结构以及如何遍历树来计算节点深度,你可以更深入地掌握...
在JavaScript(JS)中,对时间节点进行排序是一个常见的任务,特别是在处理事件日程、时间轴数据或者任何涉及时间序列的应用中。本篇文章将深入探讨如何使用JavaScript有效地对时间节点进行排序,并结合`main.js`中...
在JavaScript(简称js)中实现最短路径算法,可以帮助我们构建交互式的可视化应用,例如网页上的地图导航或游戏中的寻路系统。本篇文章将深入探讨如何使用js实现这一算法,并结合提供的文件`www.pudn.com.txt`和`...
此外,“部分说明事项.txt”文件可能包含了关于如何运行和理解这个示例的额外指导。比如,如何启动本地服务器来查看效果,如何自定义节点样式,或者如何处理拖放过程中可能出现的问题等。 总结来说,这个项目展示了...
在本资源"js效果页面实例以及说明文档"中,你将找到一系列JavaScript实现的视觉效果和相应的说明文档,帮助你理解和应用这些效果。 一、JavaScript基础 JavaScript是Web开发的核心组成部分,它主要负责处理用户交互...
3. **JavaScript**:`js`文件是插件的主要逻辑部分。它负责处理用户的交互,如点击下一步、回退等,并更新进度条的状态。此外,它还可能包含动画效果,使得进度的改变更加平滑和吸引人。 4. **说明文档**:`说明....
以下是一些关于处理非叶子节点的JavaScript知识点: 1. **树的数据结构**:首先,理解树的基本概念很重要。树是由节点(包括数据和引用)组成的非线性数据结构,每个节点可以有零个或多个子节点。在JavaScript中,...
在Vue.js框架中,动态树节点结构布局是一种常见的需求,特别是在构建数据层级关系展示或具有组织结构的应用场景中。这个“VUE动态树节点结构布局代码”提供了一种创新的环状树节点结构,能够有效地可视化层次数据,...
在JavaScript中,查找两个节点的最近公共父节点(Lowest Common Ancestor,LCA)是一项常见的任务,尤其在处理DOM树或数据结构时。这里我们将深入探讨如何实现这个功能,并结合给定的`main.js`文件和`README.txt`来...
1. 引入zTree的CSS和JS文件。 2. 准备JSON数据,定义树形结构。 3. 创建HTML结构,设置`<ul>`和`<li>`元素。 4. 初始化zTree,传递数据和配置项。 5. 调用API进行交互操作。 ### 5. 示例代码 ```html ...
`main.js`文件可能包含了这个功能的具体实现,而`README.txt`可能是关于如何使用这段代码的说明。在实际应用中,你需要先构建一个二叉树,然后调用`findPaths`函数,传入树的根节点和目标和,函数会返回满足条件的...