JavaScript / jQuery - 有什么方法可以检测点击类型吗?
JavaScript / jQuery - Any way to detect click type?
在我的代码中,我使用了 jQuery
的 click()
函数。有什么方法可以检测点击 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');
}
});
在我的代码中,我使用了 jQuery
的 click()
函数。有什么方法可以检测点击 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');
}
});