在我的代码中,我使用jQuery
' click()
函数。有没有办法检测点击类型?例如,区分鼠标点击和代码驱动点击的能力?
答案 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');
}
});