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与下拉列表处理问题解决
Feb 13 Javascript
JavaScript原生对象之Number对象的属性和方法详解
Mar 13 Javascript
Javascript技术栈中的四种依赖注入详解
Feb 23 Javascript
js严格模式总结(分享)
Aug 22 Javascript
JavaScript 闭包机制详解及实例代码
Oct 10 Javascript
JS动画定时器知识总结
Mar 23 Javascript
详解javascript 变量提升(Hoisting)
Mar 12 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
Apr 10 Javascript
详解vue.js移动端配置flexible.js及注意事项
Apr 10 Javascript
JS实现简单的文字无缝上下滚动功能示例
Jun 22 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
Jul 12 Javascript
js实现菜单跳转效果
Dec 11 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/16 PHP
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
2008/03/28 PHP
有道搜索和IP138的IP的API接口(PHP应用)
2012/11/29 PHP
php实现约瑟夫问题的方法小结
2015/03/23 PHP
PHP学习笔记之php文件操作
2016/06/03 PHP
thinkphp配置文件路径的实现方法
2016/08/30 PHP
浅谈php中fopen不能创建中文文件名文件的问题
2017/02/06 PHP
javascript oop开发滑动(slide)菜单控件
2010/08/25 Javascript
利用jQuery实现可输入搜索文字的下拉框
2013/10/23 Javascript
document.getElementById获取控件对象为空的解决方法
2013/11/20 Javascript
node.js中的require使用详解
2014/12/15 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
2017/10/24 Javascript
vue 系列——vue2-webpack2框架搭建踩坑之路
2017/12/22 Javascript
JavaScript如何获取一个元素的样式信息
2019/07/29 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
2020/04/04 jQuery
详解 javascript对象创建模式
2020/10/30 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
[03:49]DOTA2 2015国际邀请赛中国区预选赛第二日现场百态
2015/05/27 DOTA
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
Python基于DES算法加密解密实例
2015/06/03 Python
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
python基于itchat模块实现微信防撤回
2019/04/29 Python
美国按摩椅批发网站:Titan Chair
2018/12/27 全球购物
迪士尼西班牙官方网上商店:ShopDisney西班牙
2020/02/02 全球购物
建筑设计所实习生自我鉴定
2013/09/25 职场文书
党员干部2014全国两会学习心得体会
2014/03/10 职场文书
实习生评语
2014/04/26 职场文书
基层党支部公开承诺书
2014/05/29 职场文书
活动总结报告怎么写
2014/07/03 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
2014年前台接待工作总结
2014/12/05 职场文书
奠基仪式致辞
2015/07/30 职场文书
如何利用JavaScript实现二叉搜索树
2021/04/02 Javascript