Jquery 当特定输入字段失去焦点时,不会触发任何事件(如单击)

Jquery 当特定输入字段失去焦点时,不会触发任何事件(如单击),jquery,javascript-events,Jquery,Javascript Events,假设我有一个输入文本字段和几个锚链接 1) 用户光标聚焦在输入文本字段中 2) 当用户单击此字段外的一个链接时,输入字段会失去焦点,并触发一个单击事件(错误-我只希望第一次单击外部是一个失去该输入字段焦点的操作 一旦此输入字段不再处于焦点位置,则只会触发后续单击 谢谢您应该在文本字段中使用onblur event listener,它将放置一个标志,指示用户刚刚离开了这个“神奇”输入。然后,在锚中的“onclick”事件中检查该标志,如果该标志为true,则调用“prevent default”

假设我有一个输入文本字段和几个锚链接

1) 用户光标聚焦在输入文本字段中

2) 当用户单击此字段外的一个链接时,输入字段会失去焦点,并触发一个单击事件(错误-我只希望第一次单击外部是一个失去该输入字段焦点的操作

一旦此输入字段不再处于焦点位置,则只会触发后续单击


谢谢

您应该在文本字段中使用onblur event listener,它将放置一个标志,指示用户刚刚离开了这个“神奇”输入。然后,在锚中的“onclick”事件中检查该标志,如果该标志为true,则调用“prevent default”(和/或将焦点返回到输入)。
有选择地在一个小的超时后清除标志。

让我弄清楚这一点:一个输入元素是聚焦的,当你点击它之外的某个东西时,它会触发一个点击事件,但当你再次点击该东西时,它不会触发?那么,只有输入失去焦点后的第一次单击事件才被触发?让我澄清一下。一个输入元素被聚焦,当我点击它之外的东西时,它触发一个点击事件(坏-我希望它忽略这个点击事件)。当我再次点击那个东西时,(很好)。我在想这是可以做到的……但肯定会有更干净的方法吗?:)谢谢好吧,对我来说,这看起来是你能做的最好的了,你也可以将全局侦听器添加到文档中,那里的“preventDefault”会更干净一些,你不需要跟踪每个单独的锚。我该如何添加全局侦听器呢?谢谢$(文件)点击(功能(e){//这是“全局”一号);当然,它会为整个页面中的每个点击事件触发。因此,您必须只过滤您需要的内容。类似于检查事件对象中的原始元素