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

时间:2016-01-17 10:58:41

标签: javascript jquery onclicklistener jquery-click-event

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

2 个答案:

答案 0 :(得分:3)

当鼠标物理点击时,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" />

答案 1 :(得分:2)

我似乎需要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');
    }
});