2016-05-11 11 views
1

我的問題:如果我在TD右擊一個DataTable中,成功地執行以下代碼:右鍵點擊帶來的Firefox菜單,而不是執行jQuery代碼

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

任何想法?

+0

嘗試使用'上()'方法...變化'$( '#mytable的TBODY TR TD')。鼠標按下(函數(事件){''到$(文件).on('mousedown','#mytable tbody tr td',function(event){' – RRR

+0

or better to use'$(document).on('contextmenu','#mytable tbody tr td',function ){' – RRR

+0

請檢查https://jsfiddle.net/RRR0308/7hq1o31v/ – RRR

回答

1

嗨查收https://jsfiddle.net/RRR0308/7hq1o31v/使用return false代替stopPropogation()

演示代碼:

HTML

<div class="div1"> 

</div> 

<div class="msg"> 

</div> 

CSS

.div1{ 
    height:200px; 
    width:200px; 
    background:blue; 
    margin:50px; 
} 

jQuery的

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

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