首頁  >  文章  >  web前端  >  基於JavaScript實作智慧右鍵選單_javascript技巧

基於JavaScript實作智慧右鍵選單_javascript技巧

WBOY
WBOY原創
2016-05-16 15:12:371069瀏覽

透過本文介紹智慧右鍵選單,需要引進的文件再文末會給出,先給大家展示下程式碼:

具體程式碼如下圖:

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實作智慧右鍵選單的相關知識,希望對大家有幫助!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn