有没有办法检测事件是使用输入设备还是通过脚本触发,如.onEvent()
?
答案 0 :(得分:4)
短篇小说,没有。
您唯一可以检查的是event object
,它被传递给回调处理程序(“事件处理程序”)。就像他的答案中提出的 typeof 一样,如果事件是由设备触发的话,可能会有未设置的属性(反之亦然),但是再次它是100%不可靠的。例如:
$('someinputcontrol').trigger({
type: 'keydown',
originalEvent: true
});
您可以使用此技术向事件对象添加任何属性。因此,没有可靠的方法来检测是否由于设备或脚本而触发了事件。
答案 1 :(得分:2)
看起来你可以检查传递给事件处理程序的事件对象,看看它是否是一个人为事件:
if(event.originalEvent) {
...
}
如果事件是由输入设备而不是脚本触发的,事件对象似乎会有一个名为 originalEvent 的属性。