gpt4 book ai didi

javascript - 如何检测鼠标松开时触发的模糊?

转载 作者:行者123 更新时间:2023-11-29 10:23:11 27 4
gpt4 key购买 nike

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

是否已经有一个我可以收听的事件类型来处理这个问题?如果不是,处理此类事件的最佳方法是什么?

最佳答案

我会说不,没有任何此类事件。而且我认为没有完美的方法来处理这个问题

我会尽量这样处理

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

    • 触发后,它将测试它是否仍在表单中(使用 event.target)。如果是这样,则让 1,否则将其设置为 0。
  • mousedown 处理程序将有 event.preventDefault;return false;这可能会给您的其他事件处理程序带来一些麻烦。为避免此类麻烦,我将尝试在捕获阶段捕获可能损坏的事件,而不是冒泡阶段。

  • 在表单获得焦点时向文档添加一个 mouseup 处理程序。在其中,测试变量的值是否为 0。如果是,则执行模糊作业并删除两个特殊处理程序。

但这可能有一些弱点(特别是如果用户在按下鼠标时离开窗口)。

我希望这是清楚的,我会尽快发布 fiddle 。

编辑: 这是 fiddle .但是请注意,我强制将焦点放在表单上并且它只工作一个。我这样做是因为它看起来表单永远不会以其他方式获得焦点(可能与 jsfiddle 处理事件的方式有关)。但理论上,如果没有 $("form").focus(); 行,它应该也能工作。

附带说明一下,我将 jQuery 用于一些简写,如果需要我会尝试删除这些调用。

关于javascript - 如何检测鼠标松开时触发的模糊?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7271439/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com