扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
大多数情况下我们使用左键来进行页面交互,而右键大部分对于开发者来说是审查元素的,有的时候我们也要自定义鼠标右键点击行为来达到更好的交互性,常见的有漫画左键前进、右键后退。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、雅安服务器托管、营销软件、网站建设、西畴网站维护、网站推广。
第一步我们要屏蔽浏览器默认的右键点击行为,即阻止弹出框。
首先要将阻止弹出函数绑定到目标元素上:
//阻止浏览器默认右键点击事件
$("div").bind("contextmenu",
function(){
return
false;
})
如此一来,div元素的右击事件就被屏蔽了,而浏览器其他区域不受影响,如果你想在整个页面屏蔽右击事件,只需这样做:
document.oncontextmenu
=
function()
{
return
false;
}
接下来就可以为元素绑定右击响应函数了:
$("div").mousedown(function(e)
{
console.log(e.which);
//右键为3
if
(3
==
e.which)
{
$(this).css({
"font-size":
"-=2px"
});
}
else
if
(1
==
e.which)
{
//左键为1
$(this).css({
"font-size":
"+=3px"
});
}
})
示例效果为右击字体缩小,左击字体变大,且其它区域可以响应默认右击事件。
完整代码:
head
style
type="text/css"
div{
font-size:20px;
}
/style
script
src="../jquery.js"/script
script
$(function()
{
//阻止浏览器默认右键点击事件
/*document.oncontextmenu
=
function()
{
return
false;
}*/
//某元素组织右键点击事件
$("div").bind("contextmenu",
function(){
return
false;
})
$("div").mousedown(function(e)
{
console.log(e.which);
//右键为3
if
(3
==
e.which)
{
$(this).css({
"font-size":
"-=2px"
});
}
else
if
(1
==
e.which)
{
//左键为1
$(this).css({
"font-size":
"+=3px"
});
}
})
})
/script
/head
body
div
div
/div
/body
以上这篇jQuery自定义元素右键点击事件(实现案例)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
jquery怎么实现自定义右键菜单有刷新功能
在线演示地址如下:
具体代码如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
!DOCTYPE html
head
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
titlejQuery自定义区域的鼠标右键菜单/title
script src="jquery-1.6.2.min.js"/script
style type="text/css"
#mask{position: absolute;left: 0;top: 0;z-index: 9000;display: block;}
#myMenu{position: absolute;display: none;z-index: 9999;background: yellow;border: 1px solid;width: 200px;height: 155px;}
#textbox{background: orange;width: 380px;border: 2px solid;}
img{height: 30px;width: 30px;}
td{font-size: 20px;cursor: pointer;}
a{text-decoration: none;color: black;}
a: hover{color: white;background: black;}
/style
script type="text/javascript"
var windowwidth;
var windowheight;
var checkmenu;
$(window).ready(function() {
$('#myMenu').hide();
$('#textbox').bind("contextmenu",function(e){
windowwidth = $(window).width();
windowheight = $(window).height();
checkmenu = 1;
$('#mask').css({
'height': windowheight,
'width': windowwidth
});
$('#myMenu').show(500);
$('#myMenu').css({
'top':e.pageY+'px',
'left':e.pageX+'px'
});
return false;
});
$('#mask').click(function(){
$(this).height(0);
$(this).width(0);
$('#myMenu').hide(500);
checkmenu = 0;
return false;
});
$('#mask').bind("contextmenu",function(){
$(this).height(0);
$(this).width(0);
$('#myMenu').hide(500);
checkmenu = 0;
return false;
});
$(window).resize(function(){
if(checkmenu == 1) {
windowwidth = $(window).width();
windowheight = $(window).height();
$('#mask').css({
'height': windowheight,
'width': windowwidth,
});
}
});
});
/script
/head
body
div id="myMenu"
table cellspace="3"
tr
td img src="images/twitter.png" /tdtda href="#"tweet me/a/td
/tr
tr
td img src="images/facebook.png" /tdtda href="#"facebook share/a/td
/tr
tr
td img src="images/myspace.png" /tdtda href="#"myspace share/a/td
/tr
tr
td img src="images/mail.png" /tdtda href="#"e-mail this/a/td
/tr
/table
/div
div id="mask" /div
div id="textbox"
p嗨!您好,在这个区域内点击您的鼠标右键吧,会弹出一个自定义的右键菜单,和浏览器的右键菜单完全不一样哦!p/
/div
div
/body
/html
1、contextMenu我们可以根据数据记录隐藏一些菜单项,这个可以在onShowMenu事件中,根据e.currentTarget触发源获取数据,再根据你需要改变原菜单项
!DOCTYPE HTML
html
title38/title
head
style
div{
width:500px;
height:500px;
background-color:#aabbcc;
}
/style
script src=""/script
/head
body
div/div
buttontrigger/button
/body
script
$(function(){
$('div').mousedown(function(event, a){
if(event.which == 1 || a == 'left'){
alert('left click');
}
if(event.which == 3 || a == 'right'){
alert('right click');
}
});
$('button').click(function(){
$('div').trigger('mousedown', ['right']);
});
});
/script
/html
这是最简单的办法,
还可以给div加data来进行判断, 适用于比较复杂的数据结构的时候
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流