jQuery 焦点有时最终会使闪烁的文本光标消失

发布于 2024-09-04 00:37:45 字数 60 浏览 2 评论 0原文

有人知道为什么 .focus() 使光标消失,但当您单击文本输入框时它又回来了?

Anyone know why .focus() makes the cursor go away but it comes back when you click in the text input box?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

雨后彩虹 2024-09-11 00:37:45

.focus() 无法确定光标位置,例如当您在元素上触发 focus 事件时,光标应该在哪里?它由您点击的位置决定,这是完全不同的事件。

除此之外,当您 .trigger() 一个事件 (< a href="http://api.jquery.com/focus/" rel="nofollow noreferrer">.focus().trigger('focus')) 它不会像发生的那样复制事件如果用户创建了事件,例如默认操作......例如光标位置设置(出于同样的原因,.click() 也不起作用)。 .trigger() 的 jQuery 文档 简要介绍了这一点:

.trigger()模拟事件激活时,完成使用合成的事件对象,它不能完美地复制自然发生的事件。

您可以停止默认操作(使用event.preventDefault()),但是 jQuery 核心中没有用于创建或执行它的机制。

.focus() can't determine the cursor position, for example where should the cursor be when you fire the focus event on the element? It's determined by where you click, 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:

While .trigger() simulates an event activation, complete with a synthesized event object, it does not perfectly replicate a naturally-occurring event.

You can stop the default action (with event.preventDefault()), but there is no mechanism in jQuery core for creating or executing it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文