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 相关文章推荐
JS 如何获取radio选中后的值及不选择取radio的值
Oct 28 Javascript
JS实现一个列表中包含上移下移删除等功能
Sep 24 Javascript
jQuery实现带动画效果的二级下拉导航方法
Mar 11 Javascript
JavaScript用select实现日期控件
Jul 17 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
Oct 01 Javascript
Javascript复制实例详解
Jan 28 Javascript
jQuery基于扩展简单实现倒计时功能的方法
May 14 Javascript
AngularJS 单元测试(二)详解
Sep 21 Javascript
jquery动态赋值id与动态取id方法示例
Aug 21 jQuery
微信小程使用swiper组件实现图片轮播切换显示功能【附源码下载】
Dec 12 Javascript
解决bootstrap模态框数据缓存的问题方法
Aug 10 Javascript
jquery实现垂直无限轮播的方法分析
Jul 16 jQuery
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
PHP优于Node.js的五大理由分享
2012/09/15 PHP
PHP curl 获取响应的状态码的方法
2014/01/13 PHP
php.ini save_handler 修改不生效的解决办法
2014/07/22 PHP
Yii2 GridView实现列表页直接修改数据的方法
2016/05/16 PHP
php加密之discuz内容经典加密方式实例详解
2017/02/04 PHP
ASP中进行HTML数据及JS数据编码函数
2009/11/11 Javascript
jquery里的正则表达式说明
2011/08/03 Javascript
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
js中复制行和删除行的操作实例
2013/06/25 Javascript
jquery让指定的元素闪烁显示的方法
2015/03/17 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
jQuery EasyUI Dialog拖不下来如何解决
2015/09/28 Javascript
jQuery 1.9.1源码分析系列(十三)之位置大小操作
2015/12/02 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
2016/08/02 Javascript
Cookies 和 Session的详解及区别
2017/04/21 Javascript
JavaScript运动框架 解决防抖动问题、悬浮对联(二)
2017/05/17 Javascript
jQuery 开发之EasyUI 添加数据的实例
2017/09/26 jQuery
jquery实现的简单轮播图功能【适合新手】
2018/08/17 jQuery
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)
2020/02/03 Javascript
js实现百度登录窗口拖拽效果
2020/03/19 Javascript
JS面向对象实现飞机大战
2020/08/26 Javascript
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
如何定义TensorFlow输入节点
2020/01/23 Python
Django用户登录与注册系统的实现示例
2020/06/03 Python
如何在Win10系统使用Python3连接Hive
2020/10/15 Python
详解HTML5中download属性的应用
2015/08/06 HTML / CSS
综治宣传月活动总结
2014/04/28 职场文书
教师三严三实学习心得体会
2014/10/11 职场文书
无婚姻登记记录证明
2015/06/18 职场文书
学生会工作感言
2015/08/07 职场文书
2016大学生优秀志愿者事迹材料
2016/02/25 职场文书
小程序教您怎样你零成本推广获取数万用户的方法
2019/07/30 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书
Python基础之函数嵌套知识总结
2021/05/23 Python
MySQL 数据库 增删查改、克隆、外键 等操作
2022/05/11 MySQL