javascript - 为什么 setTimeout(myFunction, 0) 有效,但运行函数本身却不起作用?

标签 javascript jquery

此代码应在文本区域被选中时选择该文本区域的内容。但是,它本身不起作用:

        $("#form").focus(function() {
            $("#form").select();
        });

只有当我将 setTimeout 设置为 0 时它才有效,如下所示:

        $("#form").focus(function() {
            setTimeout(function() {
                $("#form").select();
            }, 0);
        });

这是为什么?

最佳答案

看起来第一个代码片段正在选择,然后取消选择文本。我怀疑文本选择是在 focus 事件完成后在幕后处理的,并且 setTimeout 在事件后执行 select (当幕后的事情已经发生了)。

关于javascript - 为什么 setTimeout(myFunction, 0) 有效,但运行函数本身却不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11443517/

相关文章:

javascript - 重新初始化 Ember 应用程序/恢复应用程序状态

javascript - 如何在 .babelrc 文件上设置和保留语言语法类型

javascript - 使用 JavaScript (jQuery) 在 IE(IE9 及更低版本)上出现奇怪的问题

javascript - jquery,找到一个字符串然后添加一个链接

jquery - 如何使用自定义 div 元素在 Jquery 中显示工具提示

jquery - 查找鼠标当前指向的 html 元素的 font-family?

php - 将鼠标悬停在特定帖子上应仅显示该帖子的标题

javascript - 在 javascript 中反射(reflect) native 代码函数参数?

javascript - React如何拥有不受React路由器影响的组件

php - 根据出现次数设置标签云中的字体大小