ztree树插件自定义图标----支持字体图标

zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。

这是ztree插件得官方介绍,我本人也是非常喜欢这个插件,灵活好用,几乎做的每一个项目都有用到它。但是久而久之,我发现ztree的一个缺点,就是它的自定义图标只能用图片,不能支持字体图标。首先使用图片,修改很不灵活,其次也比较浪费资源。

也是由于项目需要,所以,我便动了修改源码,使它支持字体图标的念头。废话不多说,直接看代码。

首先我发现图标的实现,是加了行内样式style,然后应用背景图片,background来实现,所以我去核心代码core文件中搜索“background”。(由于我复制了一份文件,为jquery.ztree.core.texttree.js,以下例子都是这个文件)。

找到makeNodeIcoStyle方法就是添加style的方法,根据makeNodeIcoStyle方法,又找到了一个关键方法“makeDOMNodeIcon”,这个方法是生成图标的方法。

本着不破坏原插件功能的原则,于是所有应用生成图标方法的地方,都需要加一个判断,判断开发者是想用图片背景还是字体图标。于是我增加了一个字段:“textIcon”,如果传入这个字段,则代表使用字体图标。

好了,现在使用字体图标的字段标识已经加好了,接下来再添加一个获取开发者传入的textIcon的值的方法。写在获取节点名getNodeName方法下面。

再找到生成图标方法makeDOMNodeIcon处,加上判断。字体图标主要是给元素加上class,如下图。

ok,到这为止,基本上大功告成。但是因为在进行一些操作的时候,图标会跟着改变,比如展开收起的时候,所以还要找到其他图标变换的地方,同样加上判断。这里就不再详细说了,附上几张图片。

最后开发者使用的时候,只要给textIcon字段赋上你想要的字体图标的class值就可以啦!

再清楚一点,比如官方初始化代码例子,加上textIcon字段,值是想要加的字体图标的class:

看一下最终效果。

成功了没有?ok了没有?

已经附上jquery.ztree.core.texttree.js文件,大家可以用这个文件替换你的jquery.ztree.core.js文件,看看效果吧~

如有错误或者不足,欢迎指正~

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
ztree-input是一个通过使用zTree插件实现的下拉菜单功能。根据引用[1]中提供的代码,ztree-input的实现方式是通过在页面上添加一个input框,并绑定一个点击事件来显示下拉菜单。当点击input框时,会触发事件函数"showTree()",该函数会将zTree状图显示在input框下方。同时,通过点击input框右侧的倒三角图标,可以收起或展开下拉菜单。在下拉菜单中选择相应的选项后,选中的值会存储在一个隐藏的input框中,供后续的处理使用。这样实现了一个具有下拉功能的ztree-input。 从引用中可以看到,实现ztree-input还需要引入ztree所需的js和css文件。 最后,引用提供了一个可用的示例来实现点击input框出现下拉菜单的效果。这个示例经过亲测可用。 总结来说,ztree-input是通过使用zTree插件和一些相关的代码实现的一个具有下拉功能的输入框。用户可以点击输入框来显示一个下拉菜单,并在菜单中选择相应的选项。选中的值会存储在隐藏的input框中,方便后续处理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [ztree实现下拉功能 input](https://blog.csdn.net/weixin_42599079/article/details/88897426)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [ztree形菜单实现点击input框下拉功能 (内附有demo)](https://blog.csdn.net/z_zhy/article/details/87938669)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [zTree 实现点击input框出现下拉菜单(亲测可用)上一版的传错了](https://download.csdn.net/download/z_zhy/10997776)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值