.contextmenu()


.contextmenu( handler )Returns: jQuery

描述: 为 JavaScript 的"contextmenu" 事件绑定一个处理器,或者触发元素上的 "contextmenu" 事件。

这个函数的前两个用法是 .on( "contextmenu", handler ) 的快捷方式,第三个用法是 .trigger( "contextmenu" ) 的快捷方式。 当在一个元素上点击鼠标的右键时,contextmenu事件被发送到这个元素上,但在显示的上下文菜单(右键菜单)之前。 这时上下文菜单键被按下,该事件在html元素上被触发。 任何HTML元素都可以接受此事件。  例如,请看下面的HTML:

1
2
3
<div id="target">
Right-click here
</div>

事件处理程序可以绑定到 <div>元素上,如下:

1
2
3
$( "#target" ).contextmenu(function() {
alert( "Handler for .contextmenu() called." );
});

现在,在这个元素上单击鼠标右键显示警报:

Handler for .contextmenu() called.

要手动触发事件,调用不带参数的 .contextmenu() :

1
$( "#target" ).contextmenu();

其他注意事项:

  • .contextmenu()方法只是作为.on( "contextmenu", handler )的一个速记写法,移除该事件可以使用.off( "contextmenu" ).

例子:

当contextmenu事件在段落元素上被触发时候,显示“Hello World!”对话框:

1
2
3
$( "p" ).contextmenu(function() {
alert( "Hello World!" );
});

右键单击切换背景颜色。

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
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>contextmenu demo</title>
<style>
div {
background: blue;
color: white;
height: 100px;
width: 150px;
}
div.contextmenu {
background: yellow;
color: black;
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<div></div>
<span>Right click the block</span>
<script>
var div = $( "div:first" );
div.contextmenu(function() {
div.toggleClass( "contextmenu" );
});
</script>
</body>
</html>

Demo: