设置 display:block 后将焦点设置在输入元素上

2024-06-10

我有一个 HTML,内容如下:

<div class="hiddenClass"> // this implies display:none
 <span>
    <input type="text" id="hiddenInput"/>
 </span>
</div>

和一个 Javascript 事件(在 jQuery $.ajax() 调用的“succes”方法中触发),需要使该 div 可见,然后将焦点设置到该控件。就像是:

 this.DOMElements.divElement.className="showClass"; //a CSS class with display:block;
 this.DOMElements.hiddenInputElement.focus();
 this.DOMElements.hiddenInputElement.select();

奇怪的是,这段代码只在部分时间有效。在某些情况下(仅有时!!),焦点/选择命令会生成有关聚焦/选择不可见控件的警告。控件将变得可见,但焦点不会移动,文本也不会被选择。

我(在某种程度上)找到了一个解决方案,将焦点/选择代码移动到一个单独的函数中,并通过以下方式延迟调用它:

this.DOMElements.divElement.className="showClass"; //a CSS class with display:block;
setTimeout("focusinput('hidddenInput')",1);

好吧,最后我的问题是:由于 javascript 是单线程的。为什么在我使父 div 可见的时间和我可以在子输入元素上设置焦点/选择的时间之间存在延迟?这怎么可能是竞争条件呢?

编辑:发生在 IE8 中


如果您使用 jQuery,请使用它来显示和设置焦点:

$(".hiddenClass").fadeIn("fast", 
    function() {
        $("#hiddenInput").focus();
    }
);

or

$(".hiddenClass").show(0, 
    function() {
        $("#hiddenInput").focus();
    }
);

如果你想在没有淡入的情况下显示它。

基本上,它正在淡入隐藏的 div(如果您希望显示特定的 div 而不是所有具有 .hiddenClass 的元素,则可以将 .hiddenClass 替换为 id),一旦完成,它就会执行回调函数以将焦点集中在输入。

这样,在 div 完全显示之前,您不会尝试给予输入焦点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设置 display:block 后将焦点设置在输入元素上 的相关文章

  • 限制执行第三方软件的线程的权限

    我正在开发一个基于 Eclipse 的应用程序 能够执行第三方组件 不是 eclipse plugin 每个组件都有一个列出权限 以及相应动机 的自定义描述符 这样最终用户可以决定是否执行它 组件在单独的线程中执行 如何根据描述符限制这些线
  • JavaScript 变量带有一个我需要在 Html.ActionLink 中使用的 ID

    我的 jQuery 代码中有一个 JavaScript 变量 其中包含一个我需要在我的Html ActionLink但它不起作用 Html ActionLink Genomf r AnswerForm AnswerNKI new id go
  • 将新数据添加到 d3 Streamgraph 时的转换

    我使用d3绘制了一个与官方示例非常相似的流图http bl ocks org mbostock 4060954 http bl ocks org mbostock 4060954 唯一的区别是我如何用新数据更新它 我不仅想要垂直 y 值 过
  • 如何在 Chrome 中将 Set 转换为数组?

    如何将集合转换为数组 https stackoverflow com questions 20069828 how to convert set to array给出了将 Set 转换为 Array 的三个答案 目前在 Chrome 浏览器
  • 滚动条宽度:细在 Firefox 中不起作用

    我刚刚在 Firefox 67 中实现了新的 css 滚动条颜色和滚动条宽度 滚动条宽度不起作用 无论我将其设置为自动 细化还是无 它都会显示相同的宽度 我想要它薄 但它不薄 我是这样实现的 root scrollbar color rgb
  • 如何在 Google 地图上旋转叠加图像?

    我正在尝试将一系列叠加层放置到 Google 地图上 我正在跟随地面覆盖层的示例代码 https developers google com maps documentation javascript examples groundover
  • JQuery mouseover 函数多次触发

    我很长时间以来一直使用这种方法来为整个类 按钮等 设置事件 div bigButton mouseover function this style backgroundColor dfdfdf 然而 在进行一些测试时 我刚刚注意到 当将鼠标
  • vue基于媒体查询绑定值

    carousel 3d display 3 width 150 height 150 我想根据媒体查询设置属性绑定 e g 当屏幕宽度 gt 960px 时 显示应变为 5 您可以尝试绑定display组件属性的值
  • 如何在传单地图上显示热图

    我想在我的传单地图上显示热图 我使用了 heatmap jshttps github com pa7 heatmap js https github com pa7 heatmap js但它最终只是显示 未捕获的类型错误 无法分配给只读属性
  • 在 ReactJS 中更改 URL onClick

    在我的项目中我有一个TabComponent它显示 3 个选项卡 首页 热门 全部 现在 我正在使用context反应维持 activetab它存储当前选项卡 toggleTab改变的方法activetab using setState 选
  • 提交外部有 INPUT 的表单,并修改值后

    我有一个form 有几个
  • 抓取 Shopee API v4

    我有一个最终项目 其中我想要检索的数据是通过在shopee上抓取数据来获取的 但是当我在隐藏的API上抓取shopee时遇到问题 当我在Insomnia脚本上尝试时 脚本会运行 但是当我尝试时在本地或 google colab 脚本上 这是
  • 从组件刷新/重新加载 ember 路由

    我有一个组件 它实际上是一个模式对话框 当我完成该对话框并按 确定 按钮时 我想留在打开该对话框的停留页面上 这并不难 但问题是该对话框更改了数据 我通过 REST 调用获取数据 因此我需要刷新已经所在的路线以反映数据更改 因为我是从组件中
  • 如何从另一个线程阻止 UI 线程或强制表单在 UI 线程内运行

    我的应用程序的一个要求是 如果它失去数据库连接 那么它必须弹出一个大模式 无连接 稍后重试 对话框 阻止所有用户交互 直到重新获得连接为止 我通过在应用程序启动时启动 DeviceMonitor 类的实例来实现此目的 该类创建一个 Syst
  • React cloneElement 未设置键

    我正在构建一个动态生成键的表控件 我理解这可能不是一个好主意 我想键应该与其代表的数据唯一关联 否则 React 只能为我们生成唯一的 id 但无论哪种方式似乎没有设置按键 我不知道为什么 表中的行是用可以找到的函数生成的here http
  • Javascript - HTML Canvas 上的 Gecko 边框半径自适应(CSS border-radius)

    我试图弄清楚如何将 border radius css 属性的行为重现到 HTML 画布中 所以我已经在 J avascript 中做了一些事情 以便使用特定的半径 对于每个角 来计算给定形状的正确边界 如果需要的话 这是上一个问题 Gec
  • SwingWorker 和 Executor 的区别

    我正在使用 SwingWorker 在我正在制作的应用程序上执行一些重负载任务 虽然今天我遇到了 Executor 类和这个例子 Executors newCachedThreadPool execute new Runnable publ
  • 多个引导模式的滚动问题

    我有一个带有大量信息的模态页面 因此您需要滚动 该模式包含指向第二个模式的链接 When I 打开模态 1 单击链接打开模式 2 模式 1 保持在后台 然后关闭模式 2 以便我回到模式 1 modal 1 失去滚动 仍然有一个滚动条 但它不
  • 如何使用 JQuery 创建新的 img 标签,并使用 JavaScript 对象中的 src 和 id?

    我从基本意义上了解 JQuery 但对它绝对是新手 并且怀疑这很容易 我在 JSON 响应中获得了图像 src 和 id 转换为对象 因此在 responseObject imgurl 和 responseObject imgid 中获得了
  • 如何在流体宽度表中使用省略号而不使每列大小相同?

    假设我的表中的列是id name description and phone The description列的长度为 1 255 个字符 但 id 最多只有 3 个字符 我希望列的大小适当 而不是每列的大小相同 我想要descriptio

随机推荐

  • 如何在 SwiftUI 中包装和使用 MarqueeLabel?

    我正在尝试在 SwiftUI 中向文本 歌曲名称 添加选取框效果 以便它在大于屏幕宽度时在屏幕上水平滚动 I know 跑马灯标签 https github com cbpowell MarqueeLabel可用于 UIKit 但我无法将其
  • ViewPager 显示 Fragment 时出现问题

    我正在尝试使用 ViewPager 获取包含三个选项卡的片段 最初 我使用 FragmentMgr 从 Activity 实例化片段 效果很好 当我使用 ViewPager 转换此导航时 此 Fragment 不再显示 MainActivi
  • 如何以编程方式将文件上传到网站?

    我必须将文件上传到服务器 该服务器仅公开带有文件上传按钮的 jsf 网页 通过 http 我必须自动化一个进程 作为java独立进程完成 该进程生成一个文件并将文件上传到服务器 遗憾的是 必须上传文件的服务器不提供FTP或SFTP 有没有办
  • 如何检测已更改的网页?

    在我的应用程序中 我使用 LWP 定期获取网页 无论如何 是否要检查两次连续提取之间网页是否在某些方面发生了变化 除了明确进行比较之外 是否有在较低协议层生成的任何签名 例如 CRC 可以提取并与旧签名进行比较以查看可能的更改 有两种可能的
  • Java中的重载方法[重复]

    这个问题在这里已经有答案了 必须满足哪些条件才能使两个方法正确地成为重载方法 两个方法是否至少必须在参数列表上有所不同 例如 public void A public void A int val 因此 仅更改返回类型和 或访问修饰符不会产
  • 如何在 GWT 中实现登录屏幕?

    我正在为后端应用程序编写一个小型 GWT 前端 我想知道 GWT 应用程序的最佳安全模型是什么 我正在考虑实现一种 RPC 方法 该方法从客户端网页接收用户密码的 MD5 然后将会话 ID 传回客户端页面 或失败代码 所有后续调用都将简单地
  • 参数验证最佳实践

    想象一下你有一个应用程序是某种前端您所有的业务逻辑 该前端有很多依赖的 DLL 并且这些 DLL 中的方法可能会在前端执行一次给定方法时重复相互调用 如果您的应用程序的用户不直接访问这些 DLL 您是否应该 1 冒着 小 性能下降的风险并验
  • 举例说明为什么不建议将图像存储在 CoreData 中?

    这个问题已经被问过很多次了 我读到很多用户都说不建议将图像存储在数据库中 特别是在 CoreData 中 他们似乎都忽略了他们这样做的原因 甚至苹果文档也声明了这一点 每个人都指向那个方向 每次讨论都以这样的方式结束 好吧 你可以 但存储路
  • 使用 kwargs 时如何转义 Python format() 中的冒号?

    我有一本想要打印的字典 其键中带有冒号 不幸的是 冒号字符用于格式化 所以我需要以某种方式转义它 例如 gt gt gt d hello world with colon moo gt gt gt hello format d world
  • 如何改变CSS切换开关的大小

    我正在为一个名为 elementor 的插件设计一个元素 这个项目实际上只是为了帮助我学习 WordPress 开发的功能 我正在制作一个 切换内容 滑块 可以在文本或预定义的 html 之间切换 我根据本指南使用了滑块 https www
  • 当手机进入待机状态(屏幕关闭状态)时,活动识别停止接收更新

    我在活动识别方面遇到一些问题 我已经在应用程序中实现了它 当设备屏幕打开时它工作正常 我的活动识别意图服务类中有一个日志条目 我可以看到它何时获得更新 所以 我知道当屏幕打开时它工作正常 但是 当手机进入待机状态 屏幕关闭 后 它会停止检测
  • Vim ":source %" 命令导致错误 (E499)

    Stack Overflow vim 用户大家好 我最近发现自己花了相当多的时间在学校的计算机科学实验室编写代码 我在无数的linux系统上配置过vim 从来没有遇到过这个错误 E499 Empty file name for or onl
  • 离子标签栏与主页按钮重叠(iPhone X - iOS 11)

    使用 iOS 11 和 iPhone X苹果指定 https developer apple com ios human interface guidelines overview iphone x 每个应用程序都应该位于 安全区域 由于虚
  • 内容处置:ASP.Net 中的内联 PDF 文件不起作用

    我正在尝试将带有标题的 PDF 文件返回到浏览器Content Dispostion inline就在我创建这个文件之后 浏览器的查看者无法打开它 文件没有损坏 如果我放入浏览器 查看器会正确显示文件 但我想一次性创建文件并检查用户对文件的
  • 支持链接方法的模拟对象

    我想知道是否有一种相当简洁的方法来模拟支持方法链接的对象 例如 数据库查询对象可能有一个如下所示的方法调用 result database gt select my table gt where array my field gt a va
  • 当通过 JS 事件加载新页面时,如何使 Selenium WebDriver 等待页面加载

    我正在致力于自动化一个网站 该网站有许多链接 可以通过 JS 事件加载新页面 基本上 有些元素是可点击的 点击其中一个会导致一些 JavaScript 运行 这会导致表单被提交并路由到新页面 现在 如果这些只是标准的 HTML 链接 那就没
  • ImportError:IDLE 中没有名为 matplotlib 的模块

    当我想在 IDLE 中导入 matplotlib 时 出现以下错误 ImportError No module named matplotlib 我使用mac 我的bash profile中python的PATH是 Setting PATH
  • 如何在 Haskell 中枚举递归数据类型?

    这篇博文 http lukepalmer wordpress com 2008 05 02 enumerating a context free language 对于如何使用 Omega monad 对角枚举任意语法有一个有趣的解释 他提
  • 映射并使用 (X, Y)、(X,Z) 和 (Y,Z) 对以及关联的 X、Y 或 Z 坐标

    我有一个清单清单nLedgers 3D 点云 nodeID X Y Z 具有多行 有些节点会有相同的X and Y坐标和不同Z协调 我想首先确定不同的Z具有相同坐标的X and Y坐标 那么同样对于X 最后为Y 然后 使用那些 X Y X
  • 设置 display:block 后将焦点设置在输入元素上

    我有一个 HTML 内容如下 div class hiddenClass this implies display none span span div