无法在文本字段上设置focus()

Phi*_*lak 7 javascript sammy.js

这只是最奇怪的事情.我有一个Sammy.js应用程序,我想在HTML加载后立即将焦点设置在文本字段上.我在这里有这个CoffeeScript:

this.partial('templates/my-template.jqt').then ->
  i = $('#item')
  debugger
  i.focus()
Run Code Online (Sandbox Code Playgroud)

当我在调试器中时,就在那一行上,我可以检查"i"并看到它是一个JQuery对象.我甚至可以调用i.val("HI THERE!")并查看我的文本字段更新.但是,调用i.focus()绝对没有任何作用.是否有一些我遗漏的安全功能不能让你专注于动态加载的文本元素?

kaz*_*azy 8

尝试:

setTimeout(function() { $('#item').focus() }, 1);
Run Code Online (Sandbox Code Playgroud)

这是很常见的问题.由于某种原因,将焦点延迟1ms使其工作.


Waz*_*azy 0

如果你确定你得到了$('#item')对象。你可以尝试一些事情。

确保您只有一个带有 id 的输入框。<input type="text" id="item" />相同的 id 不应重复。

接下来的事情是你为什么不尝试一下$('#item').focus()

谢谢。带着敬意,

瓦西姆