右键单击firefox菜单,而不是执行jquery代码
我的问题:如果我右键单击Datatable中的TD,以下代码将成功执行:右键单击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
$('#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; }); });