给你写了个简单的例子,注释也写明了!
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>禁用和改写鼠标右键</title>
<style type="text/css">
.MouserNemu{display:none; position:absolute; border:1px solid #CCC; background:#ddd}
</style>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$(function(){
//禁用鼠标右键菜单
$(document).bind("contextmenu", function(e){ return false; })
//绑定点击右键显示菜单
$(document).bind('mousedown',ShowMouse);
$('.MouserNemu').hover(function(){
//菜单出来后移上去点左健不会隐藏当前菜单
$(document).unbind('mousedown');
},function(){
//移出后点击其它区域则隐藏菜单
$(document).bind('mousedown',ShowMouse);
})
});
function ShowMouse(e){
//(e.which); // 1 = 鼠标左键 left; 2 = 鼠标中键; 3 = 鼠标右键
switch(e.which){
case 1:
//鼠标左键隐藏菜单
$('.MouserNemu').hide();
break;
case 2: break;
case 3:
//鼠标右键显示菜单
$('.MouserNemu').show().css({'left':e.pageX,'top':e.pageY});
break;
}
return false;
}
</script>
</head>
<body>
<div class="MouserNemu">
鼠标右键菜单
</div>
</body>
</html>
出来了,但这个貌似点哪都能出来,我想在某个div里才能点出来,其它地方屏蔽右键。。
@没发光的钻石: 把document改成你div的class名称就可以了
@三国灰鼠: 不行啊,你看我这样改了以后除非点那个div,右键菜单才会消失,点击其他地方不管左键右键他就是不隐藏,想让他点击其他地方就隐藏
$(function(){ //禁用鼠标右键菜单 $(document).bind("contextmenu", function(e){ return false; }) //绑定点击右键显示菜单 $(".aa").bind('mousedown',ShowMouse); $('.MouserNemu').hover(function(){ //菜单出来后移上去点左健不会隐藏当前菜单 $(".aa").unbind('mousedown'); },function(){ //移出后点击其它区域则隐藏菜单 $(".aa").bind('mousedown',ShowMouse); }) }); //要点击的div <div class="aa">bbbb</div>
@没发光的钻石: <!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>禁用和改写鼠标右键</title>
<style type="text/css">
.MouserNemu{display:none; position:absolute; border:1px solid #CCC; background:#ddd}
</style>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$(function(){
//禁用鼠标右键菜单
$(document).bind("contextmenu", function(e){ return false; })
//绑定点击右键显示菜单
$(document).bind('mousedown',ShowMouse);
$('.aa').bind('mousedown',ShowMouse);
$('.MouserNemu').hover(function(){
//菜单出来后移上去点左健不会隐藏当前菜单
$('.aa').unbind('mousedown');
},function(){
//移出后点击其它区域则隐藏菜单
$('.aa').bind('mousedown',ShowMouse);
})
});
function ShowMouse(e){
//(e.which); // 1 = 鼠标左键 left; 2 = 鼠标中键; 3 = 鼠标右键
switch(e.which){
case 1:
//鼠标左键隐藏菜单
$('.MouserNemu').hide();
break;
case 2: break;
case 3:
if(e.target!='[object HTMLBodyElement]'){
//鼠标右键显示菜单
$('.MouserNemu').show().css({'left':e.pageX,'top':e.pageY});
}
break;
}
return false;
}
</script>
</head>
<body>
<div class="aa" style="width:500px; height:500px; background:#000"></div>
<div class="MouserNemu">
鼠标右键菜单
</div>
</body>
</html>
@三国灰鼠: 还是不行,点div同一个高度上的其他地方右键会屏蔽,但点击div不在同一高度的其它地方右键不会被屏蔽,。。。。我是用火狐测试的。。
@没发光的钻石: 好了, 把这个 $(document).bind('mousedown',ShowMouse);删掉就好了,谢了
http://www.cnblogs.com/tonywan/archive/2009/04/23/1441982.html
看下 这个
css+div 定位.捕捉鼠标右键时间触发 show出来. 点击document .只要不再菜单范围,hide它
不好意思,看不懂, 具体代码可以写下吗?