编程语言
首页 > 编程语言> > javascript-如何检测鼠标悬停触发的模糊?

javascript-如何检测鼠标悬停触发的模糊?

作者:互联网

我正在监听表单输入上的模糊事件.现在,当在控件外部按下鼠标时,事件立即被触发.我需要能够检测何时在输入之外完全单击了鼠标(先按下鼠标,然后再按下鼠标).

我已经可以使用可以处理的事件类型了吗?如果没有,处理此类事件的最佳方法是什么?

解决方法:

我会说不,没有任何类型的事件.而且我认为没有完美的方式来处理

我会尝试这样处理

>添加一个全局变量,将其默认设置为-1并在表单获得焦点时将其设置为1.
>当表单获得焦点时,将mousedown处理程序添加到文档中.它将全局变量设置为1.

>触发后,它将测试它是否仍处于表单中(使用event.target).如果是这种情况,则设为1,否则将其设置为0.

> mousedown处理程序将具有event.preventDefault;并返回false;.这可能给您的其他eventHandlers带来一些麻烦.为避免此类麻烦,我将尝试捕获可能在捕获阶段损坏的事件,而不是冒泡的事件.
>当表单获得焦点时,将mouseup处理程序添加到文档中.在其中,测试变量的值是否为0.如果是,则执行模糊工作并删除两个特殊处理程序.

但这可能会有一些缺点(特别是如果用户在按下鼠标的同时离开窗口).

我希望这很清楚,我会尽快发布小提琴.

编辑:这是fiddle.但是请注意,我强制将注意力集中在表单上,​​并且它只工作在一个表单上.我这样做是因为看起来表单永远不会被聚焦(可能与jsfiddle处理事件的方式有关).但是从理论上讲,没有$(“ form”).focus();应该可以工作.线.

附带说明一下,我使用jQuery的一些缺点,如有需要,我将尝试删除这些调用.

标签:onblur,mouseevent,javascript
来源: https://codeday.me/bug/20191102/1989985.html