【发布时间】:2014-08-11 17:30:13
【问题描述】:
我在我的 web 应用程序中使用 EmberJS,当我创建新记录(在编辑模式下设置)时,我的第一个字段(输入文本)设置了 autofocus="autofocus" 参数。它第一次在 Chrome 上运行没有问题,但之后就不行了。
页面加载一次,因为它是一个 Ember 应用程序,并且在我创建新记录时正在重新生成视图(记录视图)。
知道如何解决这个问题吗?
编辑: 我已经删除了 autofocus 属性,并且只尝试像https://stackoverflow.com/a/14763643 中那样使用 Jquery focus()
App.FocusedTextField = Em.TextField.extend({
didInsertElement: function() {
this.$().focus();
}
});
现在,即使是第一次也没有焦点。另外,如果我尝试用this.$().hide(); 替换this.$().focus();,那么输入将被隐藏。控制台中的this.$() 也显示正确的输入,但focus() 不起作用!
【问题讨论】:
-
是的
autofocus根据错误报告不适用于动态 DOM:bugzilla.mozilla.org/show_bug.cgi?id=662496 你必须依赖.focus()方法。 -
由于
autofocus是在页面加载时完成的,我想您将不得不依靠脚本来手动设置焦点。 -
那我会使用 Jquery focus() 函数,谢谢分享!