ztree 自定义参数_Ztree节点前加上两个自定义按钮

前言:

在我的权限管理模块遇到了给某些角色加权限的问题,这时就需要实现将每个模块做成树,在每个节点前加上预览和编辑的按钮,这样可以根据数据库的某个字段给每个角色赋权限。

必须必须吐槽的是,这部分的功能在网上没找到类似的,所以花了我好长的时间去研究,不过这事已经过去很久了,最近测试代码的时候拿出来看看,当时有些遗留的问题都豁然开朗了。当然这么写我一直都觉得不好,特别是最后跟据按钮icon名称选择节点信息,总觉得不好,但是又实在没想到好办法,希望有大佬指教。

需求:

Ztree节点前添加编辑和预览按钮

实现效果:

实现步骤:

前提是对ztree有些了解。

使用的是ztree官方文档里的addDiyDom,下图是该方法介绍。

附上Ztree官方文档地址:

然后我们模仿该方法可以将节点前面加上自己想要的按钮,官方文档里只加了一个,我这边加上了两个,因为分了预览和编辑的权限。

functionaddDiyDom(treeId, treeNode) {var aObj = $("#" + treeNode.tId + "_a");var preview = "";var compile = "";

aObj.before(preview).before(compile);

}

红色标出的是该按钮的icon,接下来写橙色标出的按钮的onclick方法,即按钮点击图片切换,有个小细节即有编辑权限的一定需要先有预览权限。

function preview(d) {//预览

if(d.src.search(seeCloseIcon)!=-1) {

d.src=seeOpenIcon;

}else{

d.src = seeCloseIcon;if(d.nextSibling.src.search(editOpenIcon) != -1) {

d.nextSibling.src = editCloseIon;}}

}function compile(d1) { //编辑

if(d1.src.search(editCloseIcon)!=-1) {

d1.src=editOpenIcon;//判断该元素之前的预览权限,有编辑权限必须有预览权限

if(d1.previousSibling.src.search(seeCloseIcon)!=-1) {

d1.previousSibling.src=seeOpenIcon;

}

}else{

d1.src=editCloseIcon;

}

}

这样的话就实现了ztree节点前加按钮的效果,但是如何获得选中的节点的信息?

这里我根据按钮src的图片名称选择,使用$('.diyBtn1').each(function() {}方法遍历所有class为diyBtn1的按钮,判断按钮的src名称为选中还是未选中,选中的话就获得其节点信息,多个节点用逗号隔开拼接成字符串存放在隐藏域中。参考代码如下(总觉得这个方法不好,但又想不出什么好办法,后续有好办法再记录):

functionzTreeOnCheck() {var id = "";//仅拥有预览权限

var id2 = "";//同时拥有预览和编辑权限

$('.diyBtn1').each(function() {var src = $(this)[0].src;var nextSrc = $(this).next()[0].src;var priviewIconName = src.substring(src.lastIndexOf('/'),src.lastIndexOf('.'));var compileIconName = nextSrc.substring(nextSrc.lastIndexOf('/'),nextSrc.lastIndexOf('.'));var priviewImageName = seeOpenIcon.substring(seeOpenIcon.lastIndexOf('/'),seeOpenIcon.lastIndexOf('.'));var compileImageName = editOpenIcon.substring(editOpenIcon.lastIndexOf('/'),editOpenIcon.lastIndexOf('.'));if(priviewIconName ==priviewImageName) {if(compileIconName ==compileImageName) {

id2+= $(this)[0].id.substring($(this)[0].id.lastIndexOf('_')+1) + ",";

}else{

id+= $(this)[0].id.substring($(this)[0].id.lastIndexOf('_')+1) + ",";

}

}

});if(0

id= id.substring(0, id.length - 1);

}if(0

id2= id2.substring(0, id2.length - 1)

}

$("#perm_id").val(id);

$("#perm_id2").val(id2);

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245255.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

xilinx c语言编程,使用Xilinx SDSoc在Xilinx zcu102开发板上编程HelloWorld

关于Xilinx SDSoc的介绍我就不再复述了,我理解的也不一定准确,可以阅读官方文档了解SDSoc,你可以把它理解为一个集成开发环境 (IDE),通过SDSoc我们能够简单快速的对Xilinx的开发板进行编程,不用像传统的嵌入式编程那样…

python画图小猪佩奇_吊炸天!Python 20秒画出小猪佩奇

原标题:吊炸天!Python 20秒画出小猪佩奇 今年社交平台上的带货女王是谁?范冰冰?杨幂?Angelababy?不,是猪猪女孩小猪佩奇。 小猪佩奇在构图基本是各种曲线,类抛物线、类圆、类椭圆、类二次贝塞尔曲线。因为画图画曲线不是Pytho…

win10c语言错误,win10打开程序提示错误状态0xc0000020的原因和解决方法

win10系统打开程序弹出“c:\xx\xxx.dll没有被指定在windows上运行,或者它包含错误。请尝试使用原始安装介质重新安装程序,或联系你的系统管理员或软件供应商以获取支持。错误状态0xc0000020 ”的提示,这到底是什么情况?这 一般是由…

poll和死锁_计算机基础知识

转自:http://blog.csdn.net/qq_15437629/article/details/52388685在这里只做备份计算机网络TCP/IP模型TCP/IP协议集的分层实施:为什么要给网络划分层次?(1)各层之间相对独立,每层都可以用最合适的技术实现;(2)各层只需知道通过层…

matlab 向量_Matlab基础入门

感谢大家观看你所做的事情,也行暂时看不到成功,但不要灰心,你并不是没有成长,而是在扎根.前情提要本篇文章将会分多次发放(原因内容太长,导致写的是否微信卡崩了🙃), 目的在于从基础的Matlab的教程开始慢慢的深入. 如果大家看到该文章有些格式上的错误或内容上的错误…

2017蓝桥c语言真题,[蓝桥杯][2017年第八届真题]发现环 (C语言代码)------------C语言——菜鸟级...

解题思路:并查集 找环 未成环之前 看作一个树用并查集找到环 两点 找的同时 建立一个 并查集树(自己瞎起的)找到两点后从两个点分别回到并查集的根节点经过的点标记上 这两个点单独经过的点(交点处除外)都是环上点原文 欢迎访问 我的博客注意事项:参考代码:#include#include#d…

python34.dll_python34.dll下载

缺少python34.dll?python34.dll文件是存放在电脑系统中很重要的一个文件,是电脑程序正常运行的重要支持,大家要是发现这个文件缺少了就要立马重新下载一个,欢迎有需要的朋友来当易网下载。dll文件特点推广模块式体系结构DLL 有助于…

python全文检索引擎_Python中使用haystack实现django全文检索搜索引擎功能

{% if query %}搜索结果如下: {% for result in page.object_list %} {{ result.object.gName }} {% empty %}啥也没找到 {% endfor %} {% if page.has_previous or page.has_next %}{% if page.has_previous %}{% endif %} 上一页{% if page.has_previous %}{% end…

c语言音像图书管理系统设计,c语言--图书管理系统

(1)创建音像图书库。此图书库中有图书,VCD,录像带3类,而每个音像图书的信息均包括编号(用B**,V**,R**分别表示图书,VCD和录像带的编号),名称,原价,原数量及剩余数量。(2)租借音像图书。在文件&q…

python环境配置opencv_【Python】python2.7 安装配置OpenCV2

原博文 2017-05-23 22:28 − 环境:Ubuntu16.04 anaconda Python2.7 opencv2.4.13 安装opencv后 import cv2 遇到错误信息: No module named cv2 安装opencv时make的过程中会出现文件“cv2.so”,它是连接OpenCV和... 相关推荐 2019-12-04 13:5…

流水灯c语言程序延时失败,用c8051f340做控制流水灯实验,程序会卡死在延时函数中 ,只要在那加延时函数程序就只能跑到那,代码如下...

满意答案lohboon2016.07.31采纳率:52% 等级:7已帮助:1159人#include "reg52.h"#define uint unsigned int#define uchar unsigned charsbit K1 P3^2; //独立按键void Delayms(uint x){ uint i,j; for(ix;i>0;i--) for(j100;…

杨辉三角python代码 不要括号_关于杨辉三角python代码的问题

匿名用户1级2017-09-02 回答杨辉三角,是二项式系数在三角形中的一种几何排列。前提:每行端点与结尾的数为1.每个数等于它上方两数之和。每行数字左右对称,由1开始逐渐变大。第n行的数字有n项。第n行数字和为2n-1。第n行的m个数可表示为 C(n-1…

python 双向链表_Python实现双向链表

打开Python开发工具IDLE,新建‘DoubleLinkedList.py’文件,并写代码如下; class Node: def __init__(self,item): self.item item self.next None self.pre None class DoubleLinkedList: def __init__(self): self.__head None def add(self,item):…

android自定义view生命周期,android基础之自定义view

一、Custom View1、view的继承关系view继承关系.png2、Android 如何绘制试图层次当activity获取焦点时,它必须提供layout层次的根节点,然后android 系统开始视图的绘制过程。绘制是从layout的根节点开始的,按照从上往下的顺序,父元…

python网课期中答案_中国大学python编程答案网课MOOC考试期末慕课答案

简述班主任的职责。创新需要提出问题,问题产生于()。A、好奇B、质疑C、想象D、矛盾“玄米色”的炒麦香属于()A.茶类香B.品种香C.地域香D.附加香已知某实心小球是由下表中所列塑料材料中的一种制成的.塑料名称密度(kg/m3〕聚甲基戊烯0.8103聚丙…

python import如何使用_Python如何import其它.py文件及其函数

​ 如上图所示,我想在test_1.py文件中import我在lstm_1.py中定义的LstmParam和 LstmNetwork。我直接采用的是最简单的引用方法:from lstm_1 import LstmParam, LstmNetwork,但是很明显报错了,不能直接这样引用。因为,编…

android 数据库 字节数组,Android上的GreenDAO:字节数组作为主键/构建包含字节数组属性Where子句的查询...

关于字节[]又名在greendao BLOB:看着de.greenrobot.dao.query.WhereCondition.PropertyCondition.checkValueForType条件01目前不支持,因为如果值的类型为byte[],以下几行将始终引发异常。if (value ! null && value.getClass().isAr…

艾为数字ic面试题_每日学习:数字后端面试100问(2019全新版)

关注并标星大同学吧每天1次,打卡学习积累1个新知识,增1分职场底气作者称谓:Tao涛个人介绍:摸爬滚打多年的数字后端工程师微信公众号:数字后端IC芯片设计半导体知识分享第29期技能升级,从这里开始最近项目刚…

not null primary key什么意思_explain都不会用,你还好意思说精通Mysql查询优化?

Explain简介Explain关键字是Mysql中sql优化的常用「关键字」,通常都会使用Explain来「查看sql的执行计划,而不用执行sql」,从而快速的找出sql的问题所在。在讲解Explain之前首先创建需要的「用户表user、角色表role、以及用户角色关系表role_…

android 如何修改百度导航诱导界面,Android 百度导航SDK

1)AndroidManifest.xml增加权限,声明service和ak鉴权android:allowBackup"true"android:icon"mipmap/ic_launcher"android:label"string/app_name"android:roundIcon"mipmap/ic_launcher_round"android:supportsRtl"true"an…