有没有办法防止HTML的accesskey =""被激活?

10 javascript html5 dom accessibility wai

我试过preventDefault()但我没有成功.有什么东西我不见了吗?

如果可能的话,我会尝试全局禁用它(比如注册事件window)

Sam*_*ler 11

似乎没有办法阻止事件触发.唯一的替代方法似乎是在您不希望它们工作时暂时删除accesskey属性.这就是jQuery UI必须为模态对话框做的事情.

这是该线程的代码:

$("#boxA-dialog").dialog({
    autoOpen: false,
    modal: true,
    height: 400,
    width: 300,
    open: function(event, ui) {
        ak = $('[accesskey]').each(function() {
            $(this).data('ak', $(this).attr('accesskey')).removeAttr('accesskey')
        })
    },
    close: function(event, ui) {
        ak.each(function() {
            $(this).attr('accesskey', $(this).data('ak'))
        })
    }
});
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,它在删除jQuery数据之前将其保存为jQuery数据:

$(this).data('ak', $(this).attr('accesskey')).removeAttr('accesskey')
Run Code Online (Sandbox Code Playgroud)

然后从数据中恢复它们:

$(this).attr('accesskey', $(this).data('ak'))
Run Code Online (Sandbox Code Playgroud)

我会对实际阻止事件的解决方案感兴趣,而不是使用此解决方法.