[英]Prime NG Menu - Focus on first element when activated
我試圖將焦點從 prime ng 菜單移動到切換菜單時出現的第一個列表元素。 這是我到目前為止所擁有的。
在模板中我有:
<p-menu appendTo="body" #menu [popup]="true" [model]="menuItems" (onShow)="openMenu()"></p-menu>
在我的 typescript 中,我有:
@ViewChild('menu', { read: ElementRef }) menu: ElementRef;
...
openMenu() {
const menuItem = (
this.menu.nativeElement.getElementsByClassName(
'p-menuitem'
) as HTMLCollectionOf<HTMLElement>
)[0];
menuItem.focus();
}
當測試這個時,元素肯定被發現了,我可以在元素上設置屬性。 但是,設置焦點似乎不起作用。 有什么合適的方法來訪問 DOM 元素和設置焦點嗎?
謝謝!
這最終對我有用:
openMenu() {
const menuItem = (
this.menu.nativeElement.getElementsByClassName(
'p-menuitem-link'
) as HTMLCollectionOf<HTMLElement>
)[0];
setTimeout(() => {
menuItem.focus();
}, 1);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.