我想将焦点设置为表单元素。有了jQuery,这非常简单,只需$('selector').focus
。关注Aurelia中的元素
我创建了一个简单<input ref="xxx" id="xxx" type="text">
,在我的.ts文件,我想补充一个属性,在这里使用它:
attached() {
this.xxx.focus()
}
什么也没有发生。开始觉得一些简单的事情变得越来越困难,我相信这绝对不是重点。
(原用例是将焦点设置到一个引导崩溃里面的表单元素,当崩溃显示,像这样:
// set focus to the first element when the add-cell collapse is shown
$('#collapsedAddTask').on('shown.bs.collapse', function() {
$('#AddTaskTitle').focus()
})
,对于我的基本的HTML工作(不是单页的应用程序) ,但不与Aurelia路上,有什么奥里利亚方式?
更新 使用从下面米罗斯拉夫·波波维奇答案,并在评论中,我得到了它,像这样的工作(记住,这是一个引导程序崩溃组件):
<!-- the heading with an A that toggles visibility -->
<div class="panel-heading">
<a href="#collapsedAddTask" data-toggle="collapse" id="addTaskHeader" click.delegate="addTaskShown()">Add task</a>
</div>
<!-- the body, which is initially hidden -->
<div class="panel-body">
<div class="collapse" id="collapsedAddCell">
<input type="text" focus.bind="addTaskFocused">
<!-- more controls ... -->
</div>
</div>
你会怎么听崩溃事件?导入$并使用$('#collapsedAddTask')。on('shown.bs.collapse',function(){....})'或者是否有Aurelia方式? – specimen
使用jQuery是一种选择。我不认为你可以在视图中绑定一个触发器到这个事件('
),因为它不是一个常规的DOM事件...通常,你会想要封装所有的DOM相关的逻辑,无论是使用jQuery或纯DOM ,自定义元素或自定义属性。即在这种情况下,您可以使用自定义元素,并使用'另一种想法...你可以创建'focus-child'自定义属性这将处理这个'shown.bs.collapse'事件并将焦点设置为第一个输入元素或具有给定ID值的元素。有了这个,你可以添加该属性折叠div - '
'。更多关于文档中的自定义属性 - http://aurelia.io/docs#/aurelia/framework/1.0.0-beta.1.1.4/doc/article/cheat-sheet/8 –