JavaScript / jQuery - 有什么方法可以检测点击类型吗?

JavaScript / jQuery - Any way to detect click type?

在我的代码中,我使用了 jQueryclick() 函数。有什么方法可以检测点击 type 吗?例如区分鼠标点击和代码驱动点击的能力?

当它被鼠标物理点击时,event 具有这些属性:

clientX: 
clientY: 

因此,如果它们是 undefined,则它是程序化的。

$(function () {
  $("#btn").click(function (e) {
    console.log(typeof e.clientX);
    if (typeof e.clientX == "number")
      alert("Mouse Click");
    else
      alert("Programmatic");
  });
  $("#pxy").click(function (e) {
    $("#btn").click();
  });
});
* {font-family: 'Segoe UI'; font-size: 10pt;}
<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<input type="button" value="Click" id="btn" />
<input type="button" value="Click the Button" id="pxy" />

在我看来e.originalEvent你需要:

$('button').on('click', function (e){
    if (e.originalEvent === undefined) {
        alert ('triggered by code');
    }else {
        alert ('triggered by mouse');
    }
});

或者您可能会尝试发送额外的事件数据进行检查。

另一种选择是检查 e.isTrigger,例如:

$('button').on('click', function (e) {
    if (e.isTrigger) {
        alert ('triggered by code');
    }else {
        alert ('triggered by mouse');
    }
});