gpt4 book ai didi

javascript - 在 ember 应用程序中设置焦点

转载 作者:行者123 更新时间:2023-12-03 16:46:00 25 4
gpt4 key购买 nike

我希望能够将焦点设置到文本区域,因为鼠标单击不在该任务区域中。

作为一个最小的例子,假设我从一个文本开始,如果你点击它,它就会被一个文本字段替换。我可以通过 Handlebars 脚本实现这一点:

<script type="text/x-handlebars">
{{#if isActive}}
{{view Ember.TextField}}
{{else}}
<p {{action foo}}> Click Here to Enter text </p>
{{/if}}
</script>

有一个 Controller

App.ApplicationController = Ember.Controller.extend({
isActive: false,
foo: function(){
this.set("isActive", true);
}
});

这可以在点击时创建文本字段,但不会将焦点放在该文本区域(需要第二次点击才能真正输入文本)。

有什么好的方法可以达到这个目的吗?我可以通过在模板中设置一个 ID 并使用 jquery 选择它来做一些 hacky,但这似乎不够优雅。

最佳答案

此外,为了减少 didInsertElementthis.$().focus(); 这看起来好像您正在将 jQuery 混合到您的 Ember 模块中——还有一些我讨厌做的事情,您可以使用 Ember.JS 方法为 Ember.TextField 指定额外的属性。

我们可以指定我们对 HTML5 autofocus 属性感兴趣:

Ember.TextSupport.reopen({
attributeBindings: ["autofocus"]
});

然后我们可以将标准的 Ember.TextField 放到我们的页面上,而无需创建另一个 View 来扩展 Ember.TextField:

{{view Ember.TextField autofocus="autofocus"}}

参见 JSFiddle:http://jsfiddle.net/MdzhN/

关于javascript - 在 ember 应用程序中设置焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14763318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com