Javascript 处理右键单击事件后不显示上下文菜单

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

我想处理特定div元素上的右键单击事件。在钻研stackoverflow中的许多答案后,我得出以下结论:

 $('#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();
});