右键单击firefox菜单,而不是执行jquery代码

右键单击firefox菜单,而不是执行jquery代码,jquery,datatable,Jquery,Datatable,我的问题:如果我右键单击Datatable中的TD,以下代码将成功执行: $('#mytable tbody tr td').mousedown(function(event){ if(event.which == 3) //1 for mouseleft button, 2 for middle, 3 for right { console.log("Hello");} }); 但是,它只能工作一次!,然后,每次我再次右键单击时,都会得到一个上下文相关的Firefox菜单,而不是Jqu

我的问题:如果我右键单击Datatable中的TD,以下代码将成功执行:

$('#mytable tbody tr td').mousedown(function(event){
if(event.which == 3)  //1 for mouseleft button, 2 for middle, 3 for right
{   console.log("Hello");}
});
但是,它只能工作一次!,然后,每次我再次右键单击时,都会得到一个上下文相关的Firefox菜单,而不是Jquery代码

我试图添加event.preventDefault();event.stopPropagation();但它不起作用。也许我放错地方了

oTable = $('#mytable').DataTable({
fnDrawCallback: function () {
event.stopPropagation();
event.stopImmediatePropagation();
};
有什么想法吗?

您好,请检查使用
返回false
而不是
stopPropogation()

演示代码:

HTML

<div class="div1">

</div>

<div class="msg">

</div>
jQuery

$(document).ready(function(){
    var i=1;
  $(document).on('contextmenu', '.div1', function(e){

    $('.msg').text('right clicked '+i+' times');
    i++;
    return false;
  });
});

尝试使用
on()
方法。。。将
$('#mytable tbody tr td').mousedown(函数(事件){
更改为
$(文档)。在('mousedown','#mytable tbody tr td',函数(事件){
或更好地使用
$(文档)。在('contextmenu','#mytable tbody tr tr td',函数(事件){$(document).ready(function(){
    var i=1;
  $(document).on('contextmenu', '.div1', function(e){

    $('.msg').text('right clicked '+i+' times');
    i++;
    return false;
  });
});