jquery插件ContextMenu设置右键菜单


Posted in Javascript onMarch 13, 2017

Struts项目中右键菜单一般很少用到,但是一旦客户有要求,很多人就懵圈了,比如我。这个时候,当然要表现镇定,一面拍着胸口对客户承诺说绝对可以实现,一面赶紧打开百度神器,搜搜看是否有前人已经写好的插件。

于是便找到了jQuery的ContextMenu插件。上官网看看Demo,真不错,正是我要的效果。源码下下来,却没有说明文档告诉我们该如何组装,可能写这插件的牛人们觉得步骤太简单,写出来都觉得丢人。可苦了我们这等愚昧之徒,研究半天,总算从一堆代码中取其精华弃其糟粕,形成最简练的代码,以供初学者们参考。

官网下载地址:http://plugins.jquery.com/contextMenu/

我这边下的是1.6.6版本。源码目录结构如下:

jquery插件ContextMenu设置右键菜单

里边有个demo.html文件,这个就是我们要研究的对象。打开这个文件,可以试试效果,感觉不错吧。

jquery插件ContextMenu设置右键菜单

但是用记事本或者其他编辑器查看源代码,你会觉得头晕。一堆的js文件和css文件,恐怖不是每个都是必须的,这就要我们自己调试了,插件作者是不会告诉我们的。

jquery插件ContextMenu设置右键菜单

OK,由于时间关系,我已经帮大家删掉多余的代码,精简后的代码如下:

<html>
<head>
  <title>jQuery contextMenu Plugin Demo</title>

  <script src="jquery-1.8.2.min.js" type="text/javascript"></script>
  <script src="src/jquery.contextMenu.js" type="text/javascript"></script>
  <link href="src/jquery.contextMenu.css" rel="external nofollow" rel="stylesheet" type="text/css" />

</head>

<body>

<div class="context-menu-one">
  <strong>right click me</strong>
</div>

<script type="text/javascript" class="showcase">
$(function(){
  $.contextMenu({
    selector: '.context-menu-one', 
    callback: function(key, options) {
      var m = "clicked: " + key;
      window.console && console.log(m) || alert(m); 
    },
    items: {
      "edit": {name: "Edit", icon: "edit"},
      "cut": {name: "Cut", icon: "cut"},
      "copy": {name: "Copy", icon: "copy"},
      "paste": {name: "Paste", icon: "paste"},
      "delete": {name: "Delete", icon: "delete"},
      "sep1": "---------",
      "quit": {name: "Quit", icon: "quit"}
    }
  });

  $('.context-menu-one').on('click', function(e){
    console.log('clicked', this);
  })
});
</script>

</body>
</html>

运行效果:

jquery插件ContextMenu设置右键菜单

根据这段精简后的代码,我们就可以知道使用这个插件了。

第一步:把核心文件jquery-1.8.2.min.js、jquery.contextMenu.js、jquery.contextMenu.css拷贝至我们的项目中。

第二步:编写生成菜单以及相应菜单动作的javascript脚本。

$(function(){
  $.contextMenu({
    selector: '.context-menu-one', 
    callback: function(key, options) {
      var m = "clicked: " + key;
      window.console && console.log(m) || alert(m); 
    },
    items: {
      "edit": {name: "Edit", icon: "edit"},
      "cut": {name: "Cut", icon: "cut"},
      "copy": {name: "Copy", icon: "copy"},
      "paste": {name: "Paste", icon: "paste"},
      "delete": {name: "Delete", icon: "delete"},
      "sep1": "---------",
      "quit": {name: "Quit", icon: "quit"}
    }
  });

  $('.context-menu-one').on('click', function(e){
    console.log('clicked', this);
  })
});

第三步:在合适的位置设置右键菜单。

<div class="context-menu-one">
  <strong>right click me</strong>
</div>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery根据name属性查找的小例子
Nov 21 Javascript
jquery马赛克拼接翻转效果代码分享
Aug 24 Javascript
fastclick插件导致日期(input[type=&quot;date&quot;])控件无法被触发该如何解决
Nov 09 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
Dec 10 Javascript
Node.js Addons翻译(C/C++扩展)
Jun 12 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
Mar 07 Javascript
Vue.2.0.5过渡效果使用技巧
Mar 16 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
Apr 03 jQuery
详解vue.js2.0父组件点击触发子组件方法
May 10 Javascript
详解通过JSON数据使用VUE.JS
May 26 Javascript
JS实现数组的增删改查操作示例
Aug 29 Javascript
Express结合Webpack的全栈自动刷新
May 23 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
Mar 13 #Javascript
轻松实现jQuery添加删除按钮Click事件
Mar 13 #Javascript
jQuery+CSS3实现点赞功能
Mar 13 #Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
Mar 13 #Javascript
分享一个精简的vue.js 图片lazyload插件实例
Mar 13 #Javascript
常用的几个JQuery代码片段
Mar 13 #Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
Mar 13 #Javascript
You might like
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
php遍历所有文件及文件夹的方法深入解析
2013/06/08 PHP
php实现处理输入转义字符的代码
2015/11/08 PHP
网上抓的一个特效
2007/05/11 Javascript
js DOM的学习笔记
2011/12/22 Javascript
js获取指定日期周数以及星期几的小例子
2014/06/27 Javascript
js判断当页面无法回退时关闭网页否则就history.go(-1)
2014/08/07 Javascript
JSON+Jquery省市区三级联动
2016/01/13 Javascript
Select下拉框模糊查询功能实现代码
2016/07/22 Javascript
webix+springmvc session超时跳转登录页面
2016/10/30 Javascript
nodejs个人博客开发第三步 载入页面
2017/04/12 NodeJs
Angular中使用$watch监听object属性值的变化(详解)
2017/04/24 Javascript
Angular.JS中指令ng-if的注意事项小结
2017/06/21 Javascript
vue.js实现回到顶部动画效果
2019/07/31 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
如何使用vue slot创建一个模态框的实例代码
2020/05/24 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
2021/03/01 Javascript
[47:52]DOTA2-DPC中国联赛正赛 iG vs LBZS BO3 第二场 3月4日
2021/03/11 DOTA
python用Pygal如何生成漂亮的SVG图像详解
2017/02/10 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
详解用TensorFlow实现逻辑回归算法
2018/05/02 Python
python3中os.path模块下常用的用法总结【推荐】
2018/09/16 Python
Python中垃圾回收和del语句详解
2018/11/15 Python
PyQt5组件读取参数的实例
2019/06/25 Python
django的model操作汇整详解
2019/07/26 Python
python 并发编程 非阻塞IO模型原理解析
2019/08/20 Python
python操作微信自动发消息的实现(微信聊天机器人)
2020/07/14 Python
Alpine安装Python3依赖出现的问题及解决方法
2020/12/25 Python
HTML5页面音视频在微信和app下自动播放的实现方法
2016/10/20 HTML / CSS
新大陆软件面试题
2016/11/24 面试题
写好自荐信要注意的问题
2013/11/10 职场文书
工商局所长四风自我剖析及整改措施
2014/10/26 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
Django 如何实现文件上传下载
2021/04/08 Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
2021/06/11 Python
一次MySQL启动导致的事故实战记录
2021/09/15 MySQL