jQuery 焦点有时最终会使闪烁的文本光标消失
有人知道为什么 .focus()
使光标消失,但当您单击文本输入框时它又回来了?
Anyone know why .focus()
makes the cursor go away but it comes back when you click in the text input box?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
.focus()
无法确定光标位置,例如当您在元素上触发focus
事件时,光标应该在哪里?它由您点击
的位置决定,这是完全不同的事件。除此之外,当您
.trigger()
一个事件 (< a href="http://api.jquery.com/focus/" rel="nofollow noreferrer">.focus()
是.trigger('focus')
) 它不会像发生的那样复制事件如果用户创建了事件,例如默认操作......例如光标位置设置(出于同样的原因,.click()
也不起作用)。.trigger() 的 jQuery 文档
简要介绍了这一点:您可以停止默认操作(使用
event.preventDefault()
),但是 jQuery 核心中没有用于创建或执行它的机制。.focus()
can't determine the cursor position, for example where should the cursor be when you fire thefocus
event on the element? It's determined by where youclick
, which is a different event altogether.Aside from that, when you
.trigger()
an event (.focus()
is a shortcut for.trigger('focus')
) it doesn't replicate the event the same as it would happen if the user created the event, e.g. the default action....for example the cursor position setting (.click()
won't work either, for this same reason). The jQuery docs for.trigger()
cover this briefly:You can stop the default action (with
event.preventDefault()
), but there is no mechanism in jQuery core for creating or executing it.