JS组件系列——Bootstrap右键菜单解决方案:ContextMenu
正文
前言:有段时间没发表随笔了,过个年人都变得懒了。新年刚来上班,今天正好得空,将去年遗留的两个小组件总结记录下。有朋友跟我说:你的bootstrap组件要能够形成一个可以满足一般项目需求的系列组件,才有真正的实用价值。想想说得在理。这不今天来总结下bootstrap的一个小组件的应用。好了,不说废话,进入正题吧。
一、ContextMenu介绍
年前,博主接到一个需求:表格行调序,支持多选调序,并且可以不连续多选。什么意思呢?先来看看需要实现的效果图:
需求是:需要将选中的6、8、9行移动到第2行和第3行之间。撇开业务不说,单纯从技术层面来说,要想使用最少操作达到上述效果,博主想到了右键功能,如果能够在第2行或者第3行上面点击鼠标右键,通过右键菜单功能将选中的行移动到相应的位置,这样是不是最简单呢。说做咱就做,于是找组件,搜索“bootstrap 右键菜单”。最终找到了我们的ContextMenu组件,仔细研究之后,觉得效果还行,所以在此分享出来供需要使用的园友参考。
ContextMenu开源地址:https://github.com/sydcanem/bootstrap-contextmenu
ContextMenu使用Demo:http://sydcanem.com/bootstrap-contextmenu/
二、ContextMenu效果
初始右键效果
运用到项目中
执行菜单功能后
三、ContextMenu代码示例
其实就这么一个简单的东东,我们来看看如何使用它。
1、引用相应的文件。关键的就两个bootstrap-contextmenu.js和prettify.js
<script src="/Scripts/jquery-1.9.1.min.js"></script> <script src="/Content/bootstrap/js/bootstrap.min.js"></script> <script src="/Content/boostrap-contextmenu/bootstrap-contextmenu.js"></script> <script src="http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.js"></script>
2、html准备
<div id="context-menu"> <ul class="dropdown-menu" role="menu"> <li><a tabindex="-1" href="#" operator="top">插入此行上面</a></li> <li><a tabindex="-1" href="#" operator="bottom">插入此行下面</a></li> </ul> </div>
3、JS初始化
代码不难,就是些表格行操作的逻辑。需要说明的地方:
(1)表格行执行remove和insert之后,需要重新初始化右键菜单功能,否则,右键一次之后,就不再起作用。
(2)如果菜单功能项比较多,需要使用分割线来分组。只需要加<li class="divider"></li>就能搞定。
<div id="context-menu2"> <ul class="dropdown-menu" role="menu"> <li><a tabindex="-1">Action</a></li> <li><a tabindex="-1">Another action</a></li> <li><a tabindex="-1">Something else here</a></li> <li class="divider"></li> <li><a tabindex="-1">Separated link</a></li> </ul> </div>
(3)如果想要实现鼠标移动到菜单上面显示蓝色背景,则需要引用另一个css文件即可。
<link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet">
效果如下:
四、总结
以上就是bootstrap-ContextMenu组件的一些简单用法。可能不够完美,但是对于一般的右键菜单需求能很好的解决。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?