Javascript 检查单击事件是否由鼠标实际单击触发?
我有一个按钮,我决定触发这个按钮:Javascript 检查单击事件是否由鼠标实际单击触发?,javascript,jquery,Javascript,Jquery,我有一个按钮,我决定触发这个按钮: $(button_name).trigger("click"); 函数的处理程序要求在使用鼠标触发时,左键触发单击,但也需要通过使用代码触发来接受单击,如上图所示。如何创建一个条件语句来计算这些条件是否为真 if((navigator.appName === "Microsoft Internet Explorer" && window.event.button === 1) || window.event.button == 0
$(button_name).trigger("click");
函数的处理程序要求在使用鼠标触发时,左键触发单击,但也需要通过使用代码触发来接受单击,如上图所示。如何创建一个条件语句来计算这些条件是否为真
if((navigator.appName === "Microsoft Internet Explorer" && window.event.button === 1)
|| window.event.button == 0
|| ...){
/* If true, do this */
}
单击处理程序的第一个参数是事件对象。如果它是一个物理鼠标点击,它将有一个
clientX
和clientY
属性-如果它是编程的,它不会
$('#button').click(function (e) {
if (e.clientX) {
// physical click
} else {
// program click
}
});
如果你想获得完全的跨浏览器支持,并且是未来的证明,我认为你做不到,js在添加和修改属性方面是非常兼容的,但我的问题是“你应该这样做吗?”有几次,模拟鼠标点击的能力实际上节省了大量的时间和精力 如果
clientX
为零会发生什么?我同意这不重要,但是检查jQuery事件的属性应该是非常可靠的。如果jQuery没有包装并规范化所有事件,那么除非有一个近似的解决方案足够好,否则您可能会运气不佳。@mu问题是,除非您真的愿意投入数小时的工作来尝试解决这类问题,否则它真的会有效吗?我认为在这个案件中付出的努力是不值得的。我们没有足够的细节来知道所有这些诡计在这个案件中是否值得。但是您不需要担心跨浏览器问题,因为jQuery包装了事件,所以您只需要关心jQuery正在做什么。无论如何,担心它可能是毫无意义的。我认为你能找到的任何区分两者的方法,都可以被修补(模仿)。