重写JS的鼠标右键点击菜单

该效果主要有三点,一是对重写的下拉菜单的隐藏和显示;二是屏蔽默认的鼠标右键事件;三是鼠标左键点击页面下拉菜单隐藏。

不多说,上html代码:

1 <ul id="wrapper">
2     <li><a>一级</a></li>
3     <li><a>二级</a></li>
4     <li><a>三级</a></li>
5 </ul>

JavaScript代码如下:

 1 window.onload = function(){
 2   var wrap = document.getElementById('wrapper');  
 3   wrap.style.display = 'none';  
 4   var li = document.getElementsByTagName('li');
 5 
 6   for(var i=0;i<li.length;i++){
 7     li.onmouseover = function(){
 8     this.classname = "active";
 9   }
10   li.onmouseout = function(){
11     this.classname = "";
12   }  
13  }   
14  
15  document.oncontextmenu = function(e){
16    var e = event || window.event;
17    wrap.style.display = "block";
18    wrap.style.left = e.clientX+'px';
19    wrap.style.right = e.clientY +'px';
20     return false;//取消右键点击的默认事件
21  };
22    document.onclick= function(){
23      wrap.style.display = 'block';
24   }
25 }

该段代码最关键的地方,就是在oncontext事件中返回false,从而达到取消默认事件的效果。

posted @ 2017-02-15 10:14  落落月  阅读(16125)  评论(0编辑  收藏  举报