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表单验证代码
Aug 02 Javascript
javascript学习笔记(三)显示当时时间的代码
Apr 08 Javascript
asp.net 30分钟掌握无刷新 Repeater
Sep 16 Javascript
图片动画横条广告带上下滚动可自定义图片、链接等等
Oct 20 Javascript
JS结合bootstrap实现基本的增删改查功能
Jul 22 Javascript
基于JavaScript实现点击页面任何位置返回
Aug 31 Javascript
js上传图片预览的实现方法
May 09 Javascript
你可能不知道的JSON.stringify()详解
Aug 17 Javascript
vue.js或js实现中文A-Z排序的方法
Mar 08 Javascript
vue中promise的使用及异步请求数据的方法
Nov 08 Javascript
Vue批量图片显示时遇到的路径被解析问题
Mar 28 Javascript
用webAPI实现图片放大镜效果
Nov 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
一个自定义位数的php多用户计数器代码
2007/03/11 PHP
PHP实现自动登入google play下载app report的方法
2014/09/23 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
2017/04/18 PHP
使Ext的Template可以解析二层的json数据的方法
2007/12/22 Javascript
查询绑定数据岛的表格中的文本并修改显示方式的js代码
2009/12/15 Javascript
jQuery 改变CSS样式基础代码
2010/02/11 Javascript
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
2013/06/17 Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
2014/05/12 Javascript
通过JS动态创建一个html DOM元素并显示
2014/10/15 Javascript
ECMAScript5中的对象存取器属性:getter和setter介绍
2014/12/08 Javascript
JS如何判断json是否为空
2016/07/06 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
JavaScript设计模式之代理模式详解
2017/06/09 Javascript
JS跳转手机站url的若干注意事项
2017/10/18 Javascript
微信小程序实现跟随菜单效果和循环嵌套加载数据
2017/11/21 Javascript
js+canvas实现滑动拼图验证码功能
2018/03/26 Javascript
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
Vue刷新修改页面中数据的方法
2018/09/16 Javascript
npm qs模块使用详解
2020/02/07 Javascript
js最全的数组的降维5种办法(小结)
2020/04/28 Javascript
理解Python中的类与实例
2015/04/27 Python
关于python写入文件自动换行的问题
2018/06/23 Python
flask框架蓝图和子域名配置详解
2020/01/25 Python
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
DOUGLAS荷兰:购买香水和化妆品
2020/10/24 全球购物
意大利时尚奢侈品店:D’Aniello Boutique
2021/01/19 全球购物
自荐信的五个重要部分
2013/10/29 职场文书
五年级科学教学反思
2014/02/05 职场文书
黄金酒广告词
2014/03/21 职场文书
日语专业求职信
2014/07/04 职场文书
批评与自我批评范文
2014/10/15 职场文书
好好学习保证书
2015/02/26 职场文书
健康证明
2015/06/19 职场文书
创业计划书之面包店
2019/09/17 职场文书
MySQL快速插入一亿测试数据
2021/06/23 MySQL
自动在Windows中运行Python脚本并定时触发功能实现
2021/09/04 Python