更新时间:2017/3/6 上午11:30:39
更新说明:
修改菜单出现的位置, 保证最外层菜单不会溢出浏览器可视范围, 内层菜单还未实现,更改菜单绑定方式
ContextMenu.bind("#div1", menuJson);
第一个参数为DOM选择器,
第二个参数为菜单数组
1.页面引入css和js
<link rel="stylesheet" href="css/web.contextmenu.css" /> <script type="text/javascript" src="js/web.contextmenu.js" ></scrip
2.创建菜单数组
var menuJson = [ { name:"添加", id:"menu1", callback: function() { alert("添加"); } }, { name:"修改", id:"menu2", callback: function() { alert("修改"); } }, { name:"删除", id:"menu-delete", callback: function() { alert("删除"); } }, { name:"查询", id:"menu-query", callback: function() { alert("查询"); } }, // 第二层 { name:"二层子菜单一", id:"menu1Submenu1", parent:"menu1" }, { name:"二层子菜单二", id:"menu1Submenu2", parent:"menu1", callback: function() { alert("傻逼"); } }, { name:"二层查询菜单", id:"second-level-menu-query", parent:"menu-query", callback: function() { alert("查询第二层"); } }, // 第三层 { name:"三层子菜单", id:"menu1Submenu1Submenu", parent:"menu1Submenu1", callback: function() { alert("第三层子菜单"); } }, // 第四层 { name:"第四层子菜单", id:"fourth-menu1", parent:"menu1Submenu1Submenu", callback: function() { alert("第四层子菜单"); } }, ];
3.绑定事件
window.contextMenu(document.querySelector("#div1"), menuJson); # 第一个参数DOM对象,
参数说明
{ name: "Menu Name", // 菜单名称 id: "menu-id", // 菜单ID,谨慎不可重复 parent: "父级菜单ID", // 不写表示该项是最外层菜单项 callback: function() { // 给菜单绑定的click回调函数, alert("查询"); } }
注意:菜单数组中的菜单项的顺序必须是最外层在数组最前面,第二层在第一层后面,以此类推,顺序不对将导致菜单无法正常创建
给父级dom绑定右键菜单后,子级dom的绑定就失效了
<div id="parent"> <div id="div1" style="width:100%;height:300px;background:#036;color:#fff;text-align:center;line-height:300px"> 在这里右键查看效果 </div> <div id="div2" style="width:300px;height:300px;background:#036;color:#fff;text-align:center;line-height:300px;margin-top:10px"> 在这里右键查看效果 </div> </div>
给parent绑定了,给div1和div2的就失效了
请问这么获取当前右键的DOM元素呢?