javascript - 绑定(bind)单击键和输入键以实现辅助功能

标签 javascript jquery accessibility tabindex

给定一个表单(请注意 tabindex 属性)

<form id="settings-form">
    <input type="text" />
    <input type="submit" />
    <a href="#" class="cancel-save" tabindex="0">cancel</a>
</form>

将操作绑定(bind)到取消按钮

$('#settings-form').find('.cancel-save').click(function(){ alert('CANCEL SAVE'); });

现在,当用户想要取消更改时,他只需单击“取消”按钮即可。但是,如果他使用 TAB 键导航,然后按 Enter 键,则不会出现警报。

是否有针对此类操作的“主事件”,以处理输入、单击、空格等,无论用户可能具有什么辅助功能,而无需转换 <a>进入<button>

最佳答案

要绑定(bind)到两者,您可以在 on() 方法的第一个参数中定义多个事件(在以空格分隔的列表中):

$('#settings-form').find('.cancel-save').on('keypress click',
    function(e){
        var eType = e.type;
        if (eType == 'click' || (eType == 'keypress' && e.which == 13)) {
            alert('CANCEL SAVE');
        }
    });

JS Fiddle proof-of-concept .

引用文献:

关于javascript - 绑定(bind)单击键和输入键以实现辅助功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11479939/

相关文章:

javascript - 不显眼的 JavaScript 过时了吗?

javascript - JS和three.js,浏览器中的参数测试

javascript - 如何检查 img src 是否以 http ://img. youtube.com/vi/开头并在任何字符之后并替换为 youtube 视频 iframe?

javascript - 为什么我的 View 在 Backbone 中的数组长度不正确?

jquery - 以模态自动播放 Youtube 视频? (Avada Wordpress 主题)

javascript - 我们是否应该考虑禁用 javascript 的用户的可访问性?

无论抽屉状态如何,Android Accessibility talkback aways 说 "close navigation drawer"

javascript - 在javascript中显示带有地址栏的全屏弹出窗口

javascript - 我收到 Uncaught TypeError : Cannot read property 'removeNote' of undefined even after binding removeNote in the constructer

jquery - Ajax:成功不适用于 .live() 单击执行脚本