基于JavaScript实现智能右键菜单

通过本文给大家介绍智能右键菜单,需要引入的文件再文末会给出,先给大家展示下代码:

具体代码如下所示:

var cityArray = new Array();
cityArray.push("北京");
cityArray.push("上海");
//设置表头的鼠标右击事件
$('th').mousedown(function(e){
var selected = e.target.innerHTML;
//3表示右键
if(e.which==3){
if(selected=="订票类型"){
var opertion ={
name : "订票类型"
};
var data = [[{
text:'出票',
func:function(){
alert("出票");
}
}],[{
text:'留票',
func:function(){
alert("留票");
}
}],[{
text:'改签',
func:function(){
alert("改签");
}
}],[{
text:'退票',
func:function(){
alert("退票");
}
}],[{
text:'全部',
func:function(){
alert("全部");
}
}]];
$(this).smartMenu(data,opertion);
}else if(selected=="出发城市"){
var opertion ={
name : "出发城市"
};
var data = [];
for(var i=0;i<cityArray.length;i++){
//使用闭包
(function(i){
func = function(){
alert(cityArray[i]);
}
})(i);
var obj = {
text:cityArray[i],
func:func
};
var cArray = new Array();
cArray.push(obj);
data.push(cArray);
}
var other = {
text:"全部",
func:function(){
alert("全部");
}
}
var otherArray = new Array();
otherArray.push(other);
data.push(otherArray);
$(this).smartMenu(data,opertion);
}
}
return false;//阻止链接跳转
});

$('th') 指定加右键的标签,根据实际来确定 我这里是加在表格的表头上,所以是th标签
e.which = 3 表示是右键

这里列出了两种情况

一种是菜单上的内容确定 用前面一种opertion定义该右键菜单的名称,要唯一

另一种是不确定 可以通过从服务端获取数据,存储在数组中,我这里写死了,然后用第二种方式实现 其中需要用到闭包

需要引入的文件:http://download.csdn.net/detail/u012116457/9449905

以上内容是小编给大家分享的基于JavaScript实现智能右键菜单的相关知识,希望对大家有所帮助!

(0)

相关推荐

  • JavaScript 对任意元素,自定义右键菜单的实现方法

    一.一些概念: 1.鼠标事件有一个botton属性:返回一个整数,用于表示点击的是哪个鼠标按键. BUG:在IE和标准DOM的鼠标事件中,唯一一个button属性值相同的是"单击右键"事件,都返回2. 2.事件onmousedown:表示鼠标按键按下的动作. 事件oncontextmenu:点击鼠标触发的另一个事件. 3.中断默认事件处理函数的方法:IE中设置returnValue=false;  标准DOM中调用preventDefault()方法. 4.事件对象:①在IE中,事件对

  • JavaScript屏蔽指定区域内右键菜单

    [把鼠标放在这里单击右键试试] function click() { if(event.button == 2) { alert("右键被屏蔽"); } } document.getElementById("abc").onmousedown=click [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

  • js右键菜单效果代码

    将以下代码添加到<head>与</head>之间  ---------------------------------- <script language='javascript'>  /*******以下内容可以修改***************/  var mname=new Array(  "首  页",  "修  改",  "下  载",  "删  除",  "新  建&q

  • Js+DVML很酷漂亮实用的右键弹出菜单

    Js+DVML:很酷实用的右键弹出菜单 v\:*{behavior:url(#default#VML);} .menulist{position:static;PADDING-TOP:6;LETTER-SPACING:8;HEIGHT:20;TEXT-ALIGN:center;margin-bottom:-2} //作者:风云舞 var menutime1=null,showobjs1=null //menutime1=循环计时器调用变量,showobjs1=绑定菜单,定时器过程执行时调用 fu

  • js捕获鼠标右键菜单中的粘帖事件实现代码

    比如点击菜单中的"粘帖"后事件如何捕获  问题解决了! 用的jQuery中的paste事件,这里需要注意,如想获得粘帖文本要使用setTimeout控制下时间. 复制代码 代码如下: $("#input").bind('paste', function(e) { var el = $(this); setTimeout(function() { var text = $(el).val(); alert(text); }, 100); }); 貌似是在1.4版后加上

  • js实现的XP风格的右键菜单

    使用说明: 在使用前,先建立菜单对象  var obj = new MouseMenu("obj");  注意,obj 要和 MouseMenu("obj") 的obj 相同  如建立了 obj 那么 obj 将会有以下方法,开始 obj.length = 0  方法:  1. addMenu(express[,icon][,url][,target][,title]);  功能: 插入一个菜单,并且 返回一个功能和上面说 提起的 obj 一样的菜单对象  obj[

  • js 右键菜单,支持不同对象不同菜单(兼容IE、Firefox)

    里面的代码修改也比较简单. ddd .DreamMenu { position:absolute; visibility:hidden; z-index:100; overflow:hidden; width:150px; background-color:buttonface; border:dimgray 1px solid !important; border:buttonhighlight menu menu buttonhighlight 2px outset; padding:1px

  • ExtJs grid行 右键菜单的两种方法

    在这下边: 方法一 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="gridContextMenu.aspx.cs" Inherits="gridContextMenu" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &

  • js禁止页面复制功能禁用页面右键菜单示例代码

    <body oncontextmenu="return false">禁用网页右键菜单,但是仍然可以使用快捷键复制. js代码禁用复制功能: 复制代码 代码如下: <script type="text/javascript"> document.body.onselectstart=document.body.oncontextmenu=function(){ return false;} </script> 注意这段代码必须放在

  • 利用JS重写Cognos右键菜单的实现代码

    复制代码 代码如下: <!--菜单样式--> <STYLE type=text/css> .cMenu { BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; FONT-WEIGHT: normal; FONT-SIZE: 14px; VISIBILITY: hidden; BORDER-LEFT: #000000 1px solid; WIDTH: 150px; CURSOR: default; COLO

随机推荐