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 同时提交多个Web表单的方法
Feb 19 Javascript
jquery设置元素的readonly和disabled的写法
Sep 22 Javascript
页面图片浮动左右滑动效果的简单实现案例
Feb 10 Javascript
JS逆序遍历实现代码
Dec 02 Javascript
js与jquery实时监听输入框值的oninput与onpropertychange方法
Feb 05 Javascript
JavaScript实现打字效果的方法
Jul 10 Javascript
Vue resource中的GET与POST请求的实例代码
Jul 21 Javascript
JsChart组件使用详解
Mar 04 Javascript
iphone刘海屏页面适配方法
May 07 Javascript
浅谈React Native 传参的几种方式(小结)
May 21 Javascript
vue实现两个区域滚动条同步滚动
Dec 13 Vue.js
vue+elementUI动态增加表单项并添加验证的代码详解
Dec 17 Vue.js
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
其他功能
2006/10/09 PHP
php中Smarty模板初体验
2011/08/08 PHP
采用memcache在web集群中实现session的同步会话
2014/07/05 PHP
thinkPHP中验证码的简单实现方法
2016/12/05 PHP
PHP文件操作实例总结【文件上传、下载、分页】
2018/12/08 PHP
Laravel 连接(Join)示例
2019/10/16 PHP
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
javascript concat数组累加 示例
2009/09/03 Javascript
用apply让javascript函数仅执行一次的代码
2010/06/27 Javascript
用js调用迅雷下载代码的二种方法
2013/04/15 Javascript
JS页面延迟执行一些方法(整理)
2013/11/11 Javascript
AngularJS学习笔记之ng-options指令
2015/06/16 Javascript
jquery表格datatables实例解析 直接加载和延迟加载
2016/08/12 Javascript
Bootstrap禁用响应式布局的实现方法
2017/03/09 Javascript
详解Javascript获取缓存和清除缓存API
2017/05/25 Javascript
理解javascript async的用法
2017/08/22 Javascript
ES6学习教程之对象字面量详解
2017/10/09 Javascript
让网站自动生成章节目录索引的多个js代码
2018/01/07 Javascript
vue-cli3+ts+webpack实现多入口多出口功能
2019/05/30 Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
2019/12/25 Javascript
[32:56]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.11
2020/12/16 DOTA
Python实现网站文件的全备份和差异备份
2014/11/30 Python
Python数据库小程序源代码
2019/09/15 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
python读取csv文件指定行的2种方法详解
2020/02/13 Python
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
苹果美国官方商城:Apple美国
2016/08/24 全球购物
Topshop法国官网:英国快速时尚品牌
2018/04/08 全球购物
什么是数组名
2012/05/10 面试题
大学生党课思想汇报
2013/12/29 职场文书
兰兰过桥教学反思
2014/02/08 职场文书
出国留学计划书
2014/04/27 职场文书
清明节扫墓活动总结
2015/02/09 职场文书
大学生逃课检讨书
2015/05/04 职场文书
MySQL 存储过程的优缺点分析
2021/05/20 MySQL
Python基础之元编程知识总结
2021/05/23 Python