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 相关文章推荐
javascript 哈希表(hashtable)的简单实现
Jan 20 Javascript
锋利的jQuery jQuery中的DOM操作
Mar 21 Javascript
JavaScript常用基础知识强化学习
Dec 09 Javascript
jQuery购物网页经典制作案例
Aug 19 Javascript
Vue插件写、用详解(附demo)
Mar 20 Javascript
使用InstantClick.js让页面提前加载200ms
Sep 12 Javascript
H5实现仿flash效果的实现代码
Sep 29 Javascript
Vue中对拿到的数据进行A-Z排序的实例
Sep 25 Javascript
Vue中props的详解
May 16 Javascript
详解ECMAScript2019/ES10新属性
Dec 06 Javascript
详解vue3.0 diff算法的使用(超详细)
Jul 01 Javascript
Ant Design Pro 之 ProTable使用操作
Oct 31 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
第二章 PHP入门基础之php代码写法
2011/12/30 PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
2013/06/28 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
2015/10/09 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
javascript 的Document属性和方法集合
2010/01/25 Javascript
javascript获取所有同类checkbox选项(实例代码)
2013/11/07 Javascript
直接在JS里创建JSON数据然后遍历使用
2014/07/25 Javascript
jQuery遍历对象、数组、集合实例
2014/11/08 Javascript
jQuery实现的简单折叠菜单(折叠面板)效果代码
2015/09/16 Javascript
javascript伸缩菜单栏实现代码分享
2015/11/12 Javascript
详解JavaScript的另类写法
2016/04/11 Javascript
JavaScript实现倒计时跳转页面功能【实用】
2016/12/13 Javascript
详解百度百科目录导航树小插件
2017/01/08 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
2017/06/01 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
微信小程序canvas绘制圆角base64图片的实现
2019/08/18 Javascript
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
2020/04/29 Javascript
跟老齐学Python之list和str比较
2014/09/20 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
2018/01/10 Python
解决python给列表里添加字典时被最后一个覆盖的问题
2019/01/21 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
Python面向对象编程基础实例分析
2020/01/17 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
python-docx文件定位读取过程(尝试替换)
2020/02/13 Python
python多维数组分位数的求取方式
2020/03/03 Python
全面解析CSS Media媒体查询使用操作(推荐)
2017/08/15 HTML / CSS
轻金属冶金专业毕业生自荐信
2013/11/02 职场文书
行政部总经理岗位职责
2014/01/04 职场文书
《跨越百年的美丽》教学反思
2014/02/11 职场文书
市场调研项目授权委托书范本
2014/10/04 职场文书
医生个人年终总结
2015/02/28 职场文书
侵犯商业秘密的律师函
2015/05/27 职场文书
你有一份《诚信考试承诺书》待领取
2019/11/13 职场文书
小程序wx.getUserProfile接口的具体使用
2021/06/02 Javascript
简单聊聊Golang中defer预计算参数
2022/03/25 Golang
mysql 排序失效
2022/05/20 MySQL