Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检测焦点事件是否由用户/浏览器或jQuery触发_Javascript_Jquery_Jquery Events - Fatal编程技术网

Javascript 检测焦点事件是否由用户/浏览器或jQuery触发

Javascript 检测焦点事件是否由用户/浏览器或jQuery触发,javascript,jquery,jquery-events,Javascript,Jquery,Jquery Events,我试图检测焦点事件是否由用户(手动)触发。 当涉及到click事件时,可以检查处理程序方法中是否存在event.originalEvent: typeof event.originalEvent != "undefined" 不幸的是,焦点事件的行为不同。 请检查一下电话号码 尝试单击第一个,然后单击第二个输入的“触发器单击”按钮,您将看到单击未定义的,这意味着事件.originalEvent不存在。 然后尝试单击第一个,然后单击第二个输入的“触发焦点”按钮,您将看到焦点对象,事件。这次出现O

我试图检测焦点事件是否由用户(手动)触发。 当涉及到
click
事件时,可以检查处理程序方法中是否存在
event.originalEvent

typeof event.originalEvent != "undefined"
不幸的是,焦点事件的行为不同。 请检查一下电话号码

尝试单击第一个
,然后单击第二个输入的“触发器单击”按钮,您将看到
单击未定义的
,这意味着
事件.originalEvent
不存在。 然后尝试单击第一个
,然后单击第二个输入的“触发焦点”按钮,您将看到
焦点对象
事件。这次出现OriginaleEvent

  • 如何检测焦点事件是否由用户触发(不是以编程方式)

应用
mousedown
事件检查它是否是用户操作:

$(文档).ready(函数(){
var isUserClick=false;
$(“输入”).mousedown(函数(){
isUserClick=true;
});
$(“输入”)。打开(“单击焦点模糊”,函数(事件){
console.log(event.type,typeof event.originalEvent,isUserClick?'user':'script');
setTimeout(函数(){
isUserClick=false;
}, 200);
});
$(“按钮”)。单击(函数(){
$(“输入”。+$(this.attr(“类”)).trigger($(this.data(“事件”));
});
});

第一:
触发点击
触发焦点
触发模糊


第二: 触发点击 触发焦点 触发模糊

这可能有帮助:您可以使用特殊事件吗?与chrome(未使用其他浏览器测试)下的
custom_blur
作为
blur
别名一样,“event.originalEvent.sourceCapabilities”在从脚本触发时为空。警告,它只捕获“click”访问,不考虑使用tab键跳入字段。