我有一个引导下拉菜单(我只实现了风格没有Javascript).因此,我需要将一些js功能移植到angular2。
一个是键盘的可访问性。
到目前为止,我已经:
<div (keydown)="onMenuKeydown($event)" ....>
    <ul class="dropdown-menu">
        <li><a href="#"...>option 1</a></li>
        <li><a href="#"...>option 2</a></li>
        <li><a href="#"...>option 3</a></li>
    </ul>
</div>在我的控制器里我有这样的东西:
onMenuKeydown(event: KeyboardEvent){
    if(event.keyCode === 40){
        /*event.srcElement.nextSibling.*/
        event.preventDefault();
    }
}我想要的是,在箭头向下,它模拟或触发TAB键(因此它应该聚焦下一个元素)和箭头键向上模拟SHIFT-TAB键(以前的表索引)。
我有event.srcElement和nextSibling属性,但是它没有方法焦点.所以不能做event.srcElement.nextSibling.focus();。
这里最好的解决办法是什么?
发布于 2016-09-16 12:28:09
因此,作为参考,元素和HTMLElement显然是有区别的,后者是扩展的。
Angular2有一个在引用HTML元素时通常使用的ElementRef .
因此,要从HTMLElement获得event.nextSibling,您可以这样做
let next = new ElementRef(event.nextSibling);以及使用
next.nativeElement.focus();不要忘记在您的进口中包括ElementRef
import { Component, ElementRef } from '@angular/core';https://stackoverflow.com/questions/39510306
复制相似问题