- 博客(15)
- 收藏
- 关注
原创 js技巧-获取任意树节点数据时仅保留最顶级父级节点
因为某种需求,我不需要所有勾选的节点数据,而是如果某个节点的子节点全部勾选,只要父节点就行。循环arr每一项的children列表,比如item为node,如果temp中有node的id,那么删除该键。(1)所有节点存储在键值对temp对象中(以id为键,以节点数据为值);(2)有children字段的保留,没有children的从原数组中删除。2、遍历处理后的数据arr(此时的每一项都是有children的)3、最后遍历temp中剩余的键值对,就是最后要获取的顶级父节点数据。
2024-06-19 14:45:04
314
原创 js事件绑定与解绑,事件句柄的获取
但是,如果我们有这样的需求,比如:某种情况下要把解绑的事件再回复回去时,那就我们就得需要获取绑定的事件句柄了(这里实际上有个小问题:对于委托事件的父元素selector,不同元素事件可能不一样,这样导致我们没办法统一方法处理。我个人呢是把事件统一委托在了document上来避免父元素不一致问题)这样,我们就能获取元素的事件句柄了,如果想给它再重新绑定,直接用就可以,这几种写法都是可以的。这样,我们就可以实现事件的解绑了。我们以click事件为例。
2024-02-29 17:37:27
262
原创 localStorage的高阶使用
此时,数据在localStorage中长这样:zhangsan.zhangsan_space1.key1 = ‘value1’如果层级再深,我们的key管理起来会很不友好,所以我们可以借助于下面这个插件来实现localStorage的合理使用。数据在localStorage中长这样:zhangsan.key1 = ‘value1’但,我们的主要目的,是这么使用:定义命名空间,然后各个命名空间彼此独立。这样,我们就可以很好的实现多场景下,多层级下的键维护!并且,多层级的命名空间可以无限嵌套下去。
2024-01-17 17:53:14
423
原创 pdf.js插件的使用
前端有时会需要去处理pdf的预览,经过笔者各种测试和验证后,纯前端来讲,还是pdf.js比较好用(关于通过设置调节pdf清晰度的问题,个人的结论是:提升有限)项目目录位置 + /pdf/web/viewer.html?我这里放的是自己项目用的版本,如果想用其他版本,修改后面对应的版本号即可。项目目录位置 + /pdf/web/viewer.html?2、文件接压缩后,把pdf整个文件夹(文件内容如下图)全部拷贝至你的项目目录中。3、页面中使用时,支持两种方式:pdf文件路径、pdf base64流。
2024-01-09 16:15:05
1073
原创 VSCode 运行maven-spring-cloud项目
系统变量:新建MAVEN_HOME: D:\dev\apache-maven-3.5.3-bin\apache-maven-3.5.3 (地址指向自己的)ctrl+shift+p 打开users - setting.json,添加配置行: (地址指向自己的)D:\dev\apache-maven-3.5.3-bin 地址指向自己的。1、下载maven,解压:(现有的本地maven就能用)4、vsCode配置maven。2、Maven的环境变量配置。6、重启vsCode。
2024-01-09 11:03:32
1901
1
原创 easyui tree/combotree 支持双击展开/收起树节点
5、如果是末级节点时,我们根据自定义属性ignoreDbl来控制是否执行单击回调还是双击回调(这是为了选择性保留原始的双击回调方法)4、判断是否是末级节点,对应不同的处理逻辑,非末级节点时执行toggle事件(展开/收起)ok,到这里我们改造tree、combotree非末级节点双击时展开/收起的功能就完成了!有问题或者其他更好更合理的办法,欢迎赐教!3、向下一点,找到dbclick事件。2、给单击事件处理逻辑添加定时器。
2024-01-09 09:25:46
609
原创 easyui combotree 支持设置valueField
好了,到这儿,我们的改造工程就做完了,如果combotree的opts里配置了valueField那么就会用我们指定的字段,getValue、setValue、getValues、setVlaues都是用的我们指定的字段,如果不加,那么默认还是用的id,不影响原始控件的逻辑!原生的easyui-combotree组件不支持设置valueField,强制绑定的id字段(因为继承自tree组件),getValue、setValue、getValues、setValues针对的都是id。
2023-10-16 16:12:19
323
原创 maven 打包导致pdf.js插件字体包不可用
前端项目里pdf预览功能,用的是pdf.js插件,本地运行正常,打包后部署服务器,发现pdf预览内容空白,字体失效了
2023-06-09 10:57:06
294
原创 js中列表数据转树型结构
话不多说,直接进入正题~列表数据中字段如下:[ { id: 1, text: '节点1', parentId: 0 //这里用0表示为顶级节点 }, { id: 2, text: '节点1_1', parentId: 1 //通过这个字段来确定子父级 } ... ]我们预期的结果:[ { id: 1, text: '节
2020-09-11 16:33:41
2176
原创 easyui-combotree数据量较大时,渲染速度问题
在使用easyui-combotree组件时,如果数据量特别大,又不想做节点懒加载,需要一次性把数据渲染出来,这个时候组件加载需要耗时很久(点击下拉后需要过很久才弹出下拉面板)。怎么解决呢?直接撸源码:找到tree下的doFilter,doFilter:function(jq,q){ return jq.each(function(){ _f5(this,q); });}ok,找一下_f5这个方法:function _f5(_f6,q){ var _f7
2020-09-10 22:28:21
1218
原创 JS中字符串数字做四则运算时要注意的事项
在实际项目开发中发现了一个特别有趣的现象,虽然并不是什么高大上的东东,但应该算是前端js中常常会面临到的一个小小坑~这里跟大家分享一下var a = "12345", b = "6789";console.log((a+b).toFixed(2));console.log((a-b).toFixed(2));console.log((a/b).toFixed(2));console.log((a*b).toFixed(2));先猜测一下输出的结果会是什么?结果是:Uncaught Type
2020-09-09 21:36:15
650
原创 sass入门
1、sass安装:npm install -g sass2、命令行生成css文件:sass runoob-test.scss runoob-test.cssrunoob-test.scss:h{ font-size:16px; a{ color:red; }} runoob-test.css:h,a{ font-size:16px;}a{ color:red;}3、vue中使用sass:安装依赖包:npm inst
2020-09-09 20:32:41
204
1
前端预览ofd文件,构建ofd.js组件库
2023-06-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人