Javascript實現(xiàn)的簡單右鍵菜單類
本文實例講述了Javascript實現(xiàn)的簡單右鍵菜單類。分享給大家供大家參考。具體如下:
這是自己寫的一個右鍵菜單類,屏蔽掉了IE固有的右鍵菜單,一共有四個參數(shù):第一個是出發(fā)顯示右鍵菜單的div的id
第二個是右鍵菜單這個層的id,根據(jù)這個id去創(chuàng)建一個新的層,menuList是菜單項的列表,對應了點擊一個菜單項后觸發(fā)的函數(shù),classList是菜單的class名稱,以及菜單項對應的class名稱,包含了鼠標滑過時的class。
運行效果截圖如下:
在線演示地址如下:
http://demo.jb51.net/js/2015/js-right-button-menu-class-codes/
具體代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>右鍵菜單</title> <style type="text/css"> .cmenu { position:absolute; top:100px; left:100px; width:200px; height:200px; background-color:white; border:1px solid pink; } .liAble { font-family:"宋體"; color:#6699CC; margin-left:10px; margin-top:5px; list-style-type:none; cursor:default; } .liMouseOver { margin-left:10px; margin-top:5px; background-color:#CCFFFF; list-style-type:none; cursor:default; } </style> </head> <body> <div style="margin-left:auto; margin-right:auto; height:300px; width:60%;background-color:#CC6699" id="x"> </div> <input type="hidden" id="value1" value="4" /> <input type="hidden" id="value2" value="5" /> <script type="text/javascript"> //右鍵菜單類 function RightHandMenu(div,menuDiv,menuList,classList) { var oThis = this; this._menuList = { } this._classList = { objClass:'', MenuClass:'', liAbleClass:'', liMouseOverClass:'' } this.Init = function() { this._obj = $(div); this._obj.oncontextmenu = function(e){oThis.ShowMenu(e)}; this._obj.className = this._classList.objClass; document.onclick = function(){oThis.HiddenMenu()}; objToObj(this._classList, classList); objToObj(this._menuList, menuList); } this.CreateMenu = function() { if($(menuDiv)) { alert("該ID已被占用"); return; } this._menu = document.createElement("DIV"); this._menu.id = menuDiv; this._menu.oncontextmenu = function(e){stopBubble(e)}; this._menu.className = this._classList.MenuClass; this._menu.style.display = "none"; document.body.appendChild(this._menu); } this.CreateMenuList = function() { for(var pro in this._menuList) { var li = document.createElement("LI"); li.innerHTML = pro; this._menu.appendChild(li); li.className = this._classList.liAbleClass; li.onclick = this._menuList[pro]; li.onmouseover = function(){oThis.ChangeLiClass(this,oThis._classList.liMouseOverClass)} li.onmouseout = function(){oThis.ChangeLiClass(this,oThis._classList.liAbleClass)} } } this.ChangeLiClass = function(obj,name) { obj.className = name } this.ShowMenu = function(e) { var e = e || window.event; stopBubble(e); var offsetX = e.clientX; var offsetY = e.clientY; with(this._menu.style) { display = "block"; top = offsetY + "px"; left = offsetX + "px"; } } this.HiddenMenu = function() { this._menu.style.display = "none"; } this.Init(); this.CreateMenu(); this.CreateMenuList(); } function stopBubble(oEvent) { if(oEvent.stopPropagation) oEvent.stopPropagation(); else oEvent.cancelBubble = true; if(oEvent.preventDefault) oEvent.preventDefault(); else oEvent.returnValue = false; } function $(div) { return 'string' == typeof div ? document.getElementById(div) : div; } function objToObj(destination,source) { for(var pro in source) { destination[pro] = source[pro]; } return destination; } //構(gòu)造右鍵菜單 function Edit() { alert("edit"); } function Delete() { alert("delete"); } var menuList = { 編輯:Edit, 刪除:Delete } var classList = { MenuClass:'cmenu', liAbleClass:'liAble', liMouseOverClass:'liMouseOver' } var x = new RightHandMenu("x","testDiv",menuList,classList) </script> </body> </html>
希望本文所述對大家的JavaScript程序設計有所幫助。
相關文章
JavaScript 獲取任一float型小數(shù)點后兩位的小數(shù)
這篇文章主要介紹了JavaScript如何獲取小數(shù)任一小數(shù)點后的位數(shù)的小數(shù),需要的朋友可以參考下2014-06-06基于JavaScript+HTML5 實現(xiàn)打地鼠小游戲邏輯流程圖文詳解(附完整代碼)
打地鼠小游戲大家都喜歡玩,本文是以html編寫的,并且使用HBulider軟件進行編寫的,下面通過本文給大家分享基于JavaScript+HTML5 實現(xiàn)打地鼠小游戲邏輯流程圖文詳解,需要的朋友參考下吧2017-11-11使用Visual?Studio?2022開發(fā)前端的詳細教程
這篇文章主要介紹了使用Visual?Studio?2022開發(fā)前端,在瀏覽器中可以使用CDN源引用需要的客戶端庫,可如果在企業(yè)內(nèi)網(wǎng)使用,無法訪問CDN源時,需要將客戶端庫下載到本地使用,需要的朋友可以參考下2022-05-05JavaScript判斷數(shù)組的方法總結(jié)與推薦
這篇文章主要給大家介紹了關于JavaScript判斷數(shù)組方法的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2022-02-02