下拉键盘陷阱只对一个元素起作用

Dropdown keyboard trap only working on one element

提问人:Kevin Millhouse 提问时间:11/16/2023 最后编辑:Kevin Millhouse 更新时间:11/16/2023 访问量:20

问:

尝试构建一个键盘陷阱,使导航下拉元素键盘可访问。预期的功能应该起作用,一旦用户按 Tab 键转到下拉元素,他们就可以按向下箭头打开下拉列表并触发子元素上的焦点陷阱,而在子菜单中,当他们向上按下时,焦点陷阱被移除并返回到触发器。一切正常,唯一的问题是此代码仅适用于第一个元素。

export default function() {

    
    const trigger = $('#active-focus-trigger');
    const container = $('.navPage-subMenu')

    const focusTrap = focusTrapPackage.createFocusTrap('.navPage-subMenu', {
        allowOutsideClick: true,
        
    });

    trigger.on("keydown", function(e) {
        if(e.key === "ArrowDown") {
            console.log(e);
            e.preventDefault();
            $(e.currentTarget).parent().addClass('active-focus');
            focusTrap.activate();
        }
    });

    container.on('keydown', function(e){
        // e.preventDefault();  
        if(trigger.parent().hasClass('active-focus') && e.key === "ArrowUp") {
            trigger.parent().removeClass('active-focus');
            focusTrap.deactivate();
        }
    })
        
}```
javascript jquery 事件处理 dom-events

评论


答: 暂无答案