Javascript 处理右键单击事件后不显示上下文菜单
我想处理特定div元素上的右键单击事件。在钻研stackoverflow中的许多答案后,我得出以下结论:Javascript 处理右键单击事件后不显示上下文菜单,javascript,jquery,html,mouseevent,mousedown,Javascript,Jquery,Html,Mouseevent,Mousedown,我想处理特定div元素上的右键单击事件。在钻研stackoverflow中的许多答案后,我得出以下结论: $('#mydiv').mousedown(function(event) { if ((event.which == 3)&& (event.target.nodeName == 'SPAN')){ $("#outpdiv").append($(event.target).text().concat(" , ")); event.preventDefa
$('#mydiv').mousedown(function(event) {
if ((event.which == 3)&& (event.target.nodeName == 'SPAN')){
$("#outpdiv").append($(event.target).text().concat(" , "));
event.preventDefault();
}
});
如您所见,我试图将mydiv中的span元素的内容附加到另一个div元素outpdiv。这很好,但问题是右键单击后,将显示上下文菜单。显然,
event.preventDefault()
不起作用。如何避免这个问题,使右键单击后上下文菜单不显示 尝试捕获上下文菜单
事件,并在该处理程序中调用preventDefault()
:
回应你的评论。如果只想在单击特定div时禁用上下文菜单,则可以将处理程序绑定到该div。在jQuery和本机事件处理程序之间切换很麻烦,依我看:
$('#mydiv').on('contextmenu', function(e) {
e.preventDefault();
});
我接受了你的答案,因为你是第一个,但我没有像你那样禁用上下文菜单,而是添加了
document.getElementById('mydiv')。oncontextmenu=new Function(“return false”)
是的,我试过了。显然,e.preventDefault()
对我不起作用。我正在使用
$('#mydiv').on('contextmenu', function(e) {
e.preventDefault();
});