jquery.contextMenu右击菜单插件

个人参考:

    用jquery的ContextMenu插件设置右键菜单: https://blog.csdn.net/seabreezesuper/article/details/54862741

    自定义jQuery-ContextMenu插件的图标:https://blog.csdn.net/seabreezesuper/article/details/54890831

 问题:   jQuery-ContextMenu插件如何使用fontawesome插件图标? 请@我

具体参考官网:

    官网下载地址:http://plugins.jquery.com/contextMenu/

    和官方文档:http://swisnl.github.io/jQuery-contextMenu/docs.html

    实例参考解压包里边的demo.html文件

引用将解压包中的核心文件拷贝到自己项目中,引用css 和 js 文件即可使用。

                

个人练习:

<!DOCTYPE html">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>右击菜单</title>
	
	<link rel="stylesheet" href="./plugins/contextMenu/jquery.contextMenu.css" type="text/css">
	
	<script type="text/javascript" src="./plugins/contextMenu/jquery-1.8.2.min.js"></script>	<!-- 压缩包里的js,不影响样式 -->
	<script type="text/javascript" src="./plugins/contextMenu/jquery.contextMenu.js"></script>
	
	<style>
		/* css添加标题  content与伪类和伪元素 */
		.css-title:before {
		    content: "some CSS title";
		    display: block;
		    position: absolute;
		    top: 0;
		    right: 0;
		    left: 0;
		    background: #DDD;
		    padding: 2px;
		
		    font-family: Verdana, Arial, Helvetica, sans-serif;
		    font-size: 11px;
		    font-weight: bold; 
		}
		.css-title :first-child {
		    margin-top: 20px;
		}
	
		/* js添加标题 */
		.data-title:before {					
		    content: attr(data1-menutitle);	/* content内容在CSS里不想写死,可使用attr表达式来从页面元素中动态的获取内容。注意属性名称上不要加引号! */
		    display: block;
		    position: absolute;
		    top: 0;
		    right: 0;
		    left: 0;
		    background: #DDD;
		    padding: 2px;
		
		   	font-family: Verdana, Arial, Helvetica, sans-serif;
		    font-size: 11px;
		    font-weight: bold;
		}
		.data-title :first-child {
		    margin-top: 20px;
		}
	</style>
</head>
<body>	
	<div>
		<ul>
			<li class="context-menu-right"> 右击</li>
			<li class="context-menu-left">左击</li>
			<li class="context-menu-hover">hover触发</li>
			<li class="context-menu-change">changing disable</li>
			<li class="context-menu-sub">子菜单</li>
			<li class="context-menu-jstitle">js设置菜单标题</li>
			<li class="context-menu-csstitle">css设置菜单标题</li>
		</ul>
	</div>

</body>
	<script type="text/javascript">
		$(function(){
			$.contextMenu({
				selector: '.context-menu-right',
				callback: function(key, options){	//key为items的键,options为items的数据对象。
					if(key == 'edit'){
						alert(key + '--' + options.items.edit.name);
					}
					if(key == 'copy'){
						alert(key + '--' + options.items.copy.name);
					}
					if(key == 'delete'){
						alert(key + '--' );
					}
				},
				items: {
					"add": {name: "添加", icon: "add"},	 //icon: 为图标。{}可以放数据id: $('').val()
					"edit": {name: "修改", icon: "edit"},
		            "copy": {name: "Copy", icon: "copy"},
		            "paste": {name: "Paste", icon: "paste",callback: function(key,options){alert(key);}},
		            "delete": {name: "Delete", icon: "delete",callback: function(key,options){return false;}},	//禁用
		            "sep1": "---------",
		            "quit": {name: "Quit", icon: "quit",disabled:true},	//禁用,灰色,或者disabled: function(){ return true; }
		            "Pencil": {name: "自定义图标", icon: "Pencil"},	
		            "Search": {name: "自定义图标", icon: "Search"}
				}
			});
			
			$.contextMenu({
				selector: '.context-menu-left',
				trigger: 'left',	//左击触发
				callback: function(key, options){
					if(key == 'edit'){
						alert(key + '--' + options.items.edit.name);
					}
					if(key == 'copy'){
						alert(key + '--' + options.items.copy.name);
					}
				},
				items: {
					"edit": {name: "Edit", icon: "edit", accesskey: "e"},	//快捷键
		            "cut": {name: "Cut", icon: "cut", accesskey: "c"},
		            // first unused character is taken (here: o)
		            "copy": {name: "Copy", icon: "copy", accesskey: "c o p y"},	//首先使用未使用的字符(这里:o)
		            // words are truncated to their first letter (here: p)
		            "paste": {name: "Paste", icon: "paste", accesskey: "cool paste"},	//单词被截断到他们的第一个字母(这里:p).
		            "delete": {name: "Delete", icon: "delete"},
		            "sep1": "---------",
		            "quit": {name: "Quit", icon: "quit"}
				}
			});
			$.contextMenu({
				selector: '.context-menu-hover',
				trigger: 'hover',	//hover触发
				delay: 1000,	//一秒
				autoHide: true, //鼠标离开hover区自动隐藏激活,若不设置,需点击其他区才能隐藏。
				callback: function(key, options){
					if(key == 'edit'){
						alert(key + '--' + options.items.edit.name);
					}
					if(key == 'copy'){
						alert(key + '--' + options.items.copy.name);
					}
				},
				items: {
					"add": {name: "添加", icon: "edit"},	 
					"edit": {name: "修改", icon: "edit"},
		            "copy": {name: "Copy", icon: "copy"},
		            "sep1": "---------",
		            "quit": {name: "Quit", icon: "quit"}
				}
			});
			$.contextMenu({
			        selector: '.context-menu-change', 
			        callback: function(key, options) {
			        	if(key == 'edit'){
							alert(key + '--' + options.items.edit.name);
						}
			        	if(key == 'copy'){
							alert(key + '--' + options.items.copy.name);
						}
			        },
			        items: {
			            "edit": {name: "Clickable", icon: "edit"},
			            "cut": {
			                name: "Disabled", 
			                icon: "cut", 
			                disabled: function(key, opt) { 
			                    return !this.data('cutDisabled'); //从被选元素中返回附加的数据
			                }
			            },
			            "toggle": {
			                name: "Toggle", 
			                callback: function() {
			                    this.data('cutDisabled', !this.data('cutDisabled'));	//向被选元素附加数据。
			                    return false;
			                }
			            }
			        }
			 });
			 $.contextMenu({
			        selector: '.context-menu-sub', 
			        callback: function(key, options) {
			        	if(key == 'edit'){
							alert(key + '--' + options.items.edit.name);
						}
			        	if(key == 'fold1key1'){
							alert(key + '--' + options.items.fold1.items.fold1key1.name);	//一级一级取值,‘-’为不识别。
						}
			        	if(key == 'fold2key1'){
							alert(key + '--' + options.items.fold1.items.fold2.items.fold2key1.name);	
						}
			        	if(key=='fold2-key2'){alert(key)};
			        	if(key=='fold2-key3'){alert(key)};
			        	if(key=='fold3-key1'){alert(key)};
			        },
			        items: {
			            "edit": {"name": "Edit", "icon": "edit"},
			            "cut": {"name": "Cut", "icon": "cut"},
			            "sep1": "---------",
			            "quit": {"name": "Quit", "icon": "quit"},
			            "sep2": "---------",
			            "fold1": {
			                "name": "Sub group", 
			                "items": {								//子菜单, items里嵌套items
			                    "fold1key1": {"name": "Foo bar"},
			                    "fold2": {
			                        "name": "Sub group 2", 
			                        "items": {
			                            "fold2key1": {"name": "alpha"},
			                            "fold2-key2": {"name": "bravo"},
			                            "fold2-key3": {"name": "charlie"}
			                        }
			                    },
			                    "fold1-key3": {"name": "delta"}
			                }
			            },
			            "fold1a": {
			                "name": "Other group", 
			                "items": {
			                    "fold1a-key1": {"name": "echo"},
			                    "fold1a-key2": {"name": "foxtrot"},
			                    "fold1a-key3": {"name": "golf"}
			                }
			            }
			        }
			});
			$.contextMenu({
					selector: '.context-menu-jstitle',
					className: 'data-title',
					callback: function(key, options){
						if(key == 'edit'){
							alert(key + '--' + options.items.edit.name);
						}
						if(key == 'copy'){
							alert(key + '--' + options.items.copy.name);
						}
					},
					items: {
						"add": {name: "添加", icon: "edit"},	 
						"edit": {name: "修改", icon: "edit"},
			            "copy": {name: "Copy", icon: "copy"},
			            "sep1": "---------",
			            "quit": {name: "Quit", icon: "quit"}
					}
			}); 
			// set a title: 修改attr(data-menutitle)的值
			$('.data-title').attr('data1-menutitle', "Some JS Title"); 
			
			$.contextMenu({
					selector: '.context-menu-csstitle',
					className: 'css-title',
					callback: function(key, options){
						if(key == 'edit'){
							alert(key + '--' + options.items.edit.name);
						}
						if(key == 'copy'){
							alert(key + '--' + options.items.copy.name);
						}
					},
					items: {
						"add": {name: "添加", icon: "edit"},	 
						"edit": {name: "修改", icon: "edit"},
			            "copy": {name: "Copy", icon: "copy"},
			            "sep1": "---------",
			            "quit": {name: "Quit", icon: "quit"}
					}
			}); 
		});
	</script>
</html>

猜你喜欢

转载自blog.csdn.net/qq_42402854/article/details/80800918