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 相关文章推荐
12行javascript代码绘制一个八卦图
Apr 02 Javascript
JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)
Mar 25 Javascript
JS判断字符串变量是否含有某个字串的实现方法
Jun 03 Javascript
JS简单设置下拉选择框默认值的方法
Aug 20 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
Mar 05 Javascript
jQuery 表单序列化实例代码
Jun 11 jQuery
JS实现加载时锁定HTML页面元素的方法
Jun 24 Javascript
vue2中filter()的实现代码
Jul 09 Javascript
Angular4学习笔记之新建项目的方法
Jul 18 Javascript
javascript获取指定区间范围随机数的方法
Sep 08 Javascript
React+Antd+Redux实现待办事件的方法
Mar 14 Javascript
关于vue-cli3打包代码后白屏的解决方案
Sep 02 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数据库差异比较的PHP代码
2012/02/05 PHP
PHP删除数组中的特定元素的代码
2012/06/28 PHP
PHP调用C#开发的dll类库方法
2014/07/28 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
HTA版JSMin(省略修饰语若干)基于javascript语言编写
2009/12/24 Javascript
用jquery实现点击栏目背景色改变
2012/12/10 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
jQuery中add()方法用法实例
2015/01/08 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
2015/03/04 Javascript
深入理解Java线程编程中的阻塞队列容器
2015/12/07 Javascript
JS中检测数据类型的几种方式及优缺点小结
2016/12/12 Javascript
javascript深拷贝的原理与实现方法分析
2017/04/10 Javascript
Vue 去除路径中的#号
2018/04/19 Javascript
详解vue-cli3多页应用改造
2019/06/04 Javascript
微信小程序3D轮播实现代码
2019/09/19 Javascript
JavaScript使用canvas绘制随机验证码
2020/02/17 Javascript
Vue组件间数据传递的方式(3种)
2020/07/13 Javascript
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
2013/12/04 Python
django自定义Field实现一个字段存储以逗号分隔的字符串
2014/04/27 Python
python进阶教程之函数参数的多种传递方法
2014/08/30 Python
详解Python3中的Sequence type的使用
2015/08/01 Python
Python之os操作方法(详解)
2017/06/15 Python
python实现决策树分类算法
2017/12/21 Python
Django中使用celery完成异步任务的示例代码
2018/01/23 Python
使用Python制作微信跳一跳辅助
2018/01/31 Python
Python使用pymongo模块操作MongoDB的方法示例
2018/07/20 Python
python实现反转部分单向链表
2018/09/27 Python
Python CategoricalDtype自定义排序实现原理解析
2020/09/11 Python
CSS3等相关属性制作分页导航实现代码
2012/12/24 HTML / CSS
CSS实现半透明边框与多重边框的场景分析
2019/11/13 HTML / CSS
美国成衣女装品牌:CHICO’S
2016/09/19 全球购物
优秀本科生求职推荐信
2014/02/24 职场文书
银行竞聘演讲稿范文
2014/04/23 职场文书
Python中常见的导入方式总结
2021/05/06 Python
基于PyQT5制作一个桌面摸鱼工具
2022/02/15 Python