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 相关文章推荐
jQuery 版元素拖拽原型代码
Apr 25 Javascript
toggle()隐藏问题的解决方法
Feb 17 Javascript
利用JavaScript检测CPU使用率自己写的
Mar 22 Javascript
js实现每日自动换一张图片的方法
May 04 Javascript
js实现网页多级级联菜单代码
Aug 20 Javascript
jquery+ajax实现注册实时验证实例详解
Dec 08 Javascript
浅谈JavaScript中的this指针和引用知识
Aug 05 Javascript
基于jPlayer三分屏的制作方法
Dec 21 Javascript
如何在 Vue.js 中使用第三方js库
Apr 25 Javascript
JS原生数据双向绑定实现代码
Aug 14 Javascript
JS实现百度搜索接口及链接功能实例代码
Feb 02 Javascript
vue data变量相互赋值后被实时同步的解决步骤
Aug 05 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的Yii框架中YiiBase入口类的扩展写法示例
2016/03/17 PHP
php从身份证获取性别和出生年月
2017/02/09 PHP
获取URL地址中的文件名和参数的javascript代码
2009/09/02 Javascript
Javascript延迟执行实现方法(setTimeout)
2010/12/30 Javascript
模拟jQuery中的ready方法及实现按需加载css,js实例代码
2013/09/27 Javascript
JavaScript调用后台的三种方法实例
2013/10/17 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
进阶之初探nodeJS
2017/01/24 NodeJs
ES6学习之变量的解构赋值
2017/02/12 Javascript
js面向对象编程总结
2017/02/16 Javascript
Angular2入门教程之模块和组件详解
2017/05/28 Javascript
Node.js的Koa实现JWT用户认证方法
2018/05/05 Javascript
Angular使用动态加载组件方法实现Dialog的示例
2018/05/11 Javascript
解决vue select当前value没有更新到vue对象属性的问题
2018/08/30 Javascript
Vue 子组件与数据传递问题及注意事项
2019/07/11 Javascript
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
使用Python实现windows下的抓包与解析
2018/01/15 Python
python调用tcpdump抓包过滤的方法
2018/07/18 Python
python递归法实现简易连连看小游戏
2020/03/25 Python
python经典趣味24点游戏程序设计
2019/07/26 Python
Pytorch中的自动求梯度机制和Variable类实例
2020/02/29 Python
Python requests模块cookie实例解析
2020/04/14 Python
django有哪些好处和优点
2020/09/01 Python
python中xlutils库用法浅析
2020/12/29 Python
python实现按日期归档文件
2021/01/30 Python
浅析python连接数据库的重要事项
2021/02/22 Python
canvas基础之图形验证码的示例
2018/01/02 HTML / CSS
好军嫂事迹材料
2014/01/15 职场文书
装修五一活动策划案
2014/01/23 职场文书
献爱心大型公益活动策划方案
2014/09/15 职场文书
绿色校园广播稿
2014/10/13 职场文书
行政经理岗位职责
2015/04/15 职场文书
2015年“我们的节日·重阳节”活动总结
2015/07/29 职场文书
心得体会该怎么写呢?
2019/06/27 职场文书
虚拟机linux端mysql数据库无法远程访问的解决办法
2021/05/26 MySQL