我想检测用户是否右键单击表格中的行(数据表已启动)。
现在,如果我使用非ajax源代码,则以下代码可以正常工作:
oTable.$('tr').mousedown(function(e) {
if (e.which === 3) { //Right Mousebutton was clicked
window.sData = oTable.fnGetData( this );
jQuery(this).contextMenu({ x: e.pageX + 10, y: e.pageY + 10});
}
});
但是,如果我使用ajax源它不起作用,所以我环顾四周并尝试:
jQuery('#myTable tbody').on( 'click', 'tr', function (e) {
alert("a click!");
if (e.which === 3) { //Right Mousebutton was clicked
alert("actually it was a right click!");
}
});
此代码会检测定期点击,但如果无法识别右键单击。
我做错了什么?
答案 0 :(得分:3)
这样的东西?
jQuery('#myTable tbody').mousedown(function(e){
if( e.button == 2 ) {
alert('Right mouse button!');
return false;
}
return true;
});
答案 1 :(得分:3)
Alexey的代码在您第一次加载表时起作用,但是当您对其执行某些ajax操作时它会停止工作。因此,必须使用.on(...)
方法。
我目前使用的代码如下所示:
jQuery('#myTable tbody').on( 'mousedown', 'tr', function (e) {
alert("mouse event detected!");
if( e.button == 2 ) {
alert('Right mouse button!');
return false;
}
return true;
});