透過本文介紹智慧右鍵選單,需要引進的文件再文末會給出,先給大家展示下程式碼:
具體程式碼如下圖:
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實作智慧右鍵選單的相關知識,希望對大家有幫助!