我想通过右键单击注销某些事件。
例如,当我注册一个单击某些单元格的事件时,其颜色将改变。如下所示:
$(function() {
$("#our_calendar td").click(function(){
$(this).css('background', 'yellow');
});
});
我想通过右键单击注销。 我找到了一些答案:
Is right click a Javascript event?
我想知道是否可以通过右键单击取消注册(初始化颜色),并且是否可以不通过右键单击显示窗口。
如果有人遇到过此类问题,请告诉我。
谢谢
答案 0 :(得分:3)
假设取消注册,是指通过单击删除初始设置的颜色,可以。您还可以通过在事件处理程序中传递参数e
或事件参数并使用e.preventDefault()
来阻止显示下拉菜单(contextmenu);
尝试下面的演示,单击以设置颜色,然后右键单击以取消设置;
$("#our_calendar td").on("contextmenu", function(e) {
e.preventDefault();
$(this).css('background', 'unset');
}).on("click",function(){
$(this).css('background', 'yellow');
});
td {
padding: 15px;
cursor: pointer;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="our_calendar">
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
</table>
答案 1 :(得分:2)
您要搜索contextmenu
事件和off()
$("a")
.on('click', function() {
$(this).css('background', 'yellow');
})
.on('contextmenu', function(e) {
e.preventDefault();
$(this).off('click').css('background', 'unset');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="javascript:;">Button</a>
答案 2 :(得分:0)
您可以使用:
$('#our_calendar td').mousedown(function(event)
{
switch (event.which) {
case 1:
alert('Left mouse button is pressed');
break;
case 2:
alert('Middle mouse button is pressed');
break;
case 3:
alert('Right mouse button is pressed');
break;
default:
alert('Nothing');
}
});