JavaScript / jQuery - 任何检测点击类型的方法

JavaScript / jQuery - Any way to detect click type?

本文关键字:类型 方法 检测 jQuery 任何 JavaScript      更新时间:2023-09-26

在我的代码中,我使用jQueryclick()函数。有没有办法检测点击类型?例如,区分鼠标点击和代码驱动点击的能力?

在我看来

,你需要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');
    }
});

当鼠标以物理方式单击它时,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" />