我正在尝试使用DataTable(https://datatables.net/)上的JQuery处理鼠标中键单击事件。这是我的代码。
tbl.addEventListener("cdt.click", function (e) {
var table = window.table_entries;
var data = table.dataTable.row($(e.detail)).data();
window.open("/plugin/Changes/@Model.Revision/" + data.BuildId, '_blank');
window.location("/plugin/Changes/@Model.Revision/" + data.BuildId);
});
无论单击何处,我总是得到相同的BuildId(284)。如何获得正确的行?
我还有另一个代码段,可以正常工作
if(count($user = \App\User::where('email',$request->email)->first()) > 0)
\\Login Logics like Auth::LoginUsingId($user->id)
elseif(count($user = \App\UserInfo::where('phone_number',$request->phone_number)->first()) > 0))
\\Login Logics like Auth::LoginUsingId($user->id)
谢谢!
答案 0 :(得分:0)
如果您要检查中间按钮的点击,请使用jQuery检查此代码
$("#foo").on('click', function(e) {
if( e.which == 2 ) {
e.preventDefault();
alert("middle button");
}
});
此问题Triggering onclick event using middle click
如果您想检查鼠标,可以检查其他@KyleMit答案 Detect middle button click (scroll button) with jQuery
答案 1 :(得分:0)
@Jordi Jordi(因为我现在无法发表评论):根据JQuery的文档,单击和鼠标单击均有效。
$('h1').on('mousedown', function(e) {
alert(e.which);
});
对于LClick,将显示1,对于中间,将显示2,对于RClick,将显示3。但这不是问题。 如果您获得相同的BuildId,那是因为您的选择器不是很好的选择器。
如果要搜索准确的行,则应像这样更改选择器:
$('td').on('mousedown', function (e) {
e.preventDefault();
if (e.which == 2) {
// Here you should get the row like this :
var row = $(this).parent();
}
});
现在,执行此操作是您的工作。 var“行”将包含TR,表示您只需单击一下行。
编辑:请注意,您的第二个代码段不包含e.preventDefault()。也许这是第二个作品起作用的原因吗?