gpt4 book ai didi

javascript - 考虑到可访问性的 jQuery 事件绑定(bind) - 单击和按键

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:28:08 28 4
gpt4 key购买 nike

只是一个简单的问题,我似乎经常这样做:

$saveBtn.bind("click keypress", function(e)
{
if (e.type != "keypress" || e.keyCode == 13)
{
// Do something...

return false;
}
});

有没有更快的方法将“ Action ”监听器绑定(bind)到按钮?我想始终确保我的带有事件监听器的按钮在点击和回车键时都会触发……这似乎是一件很常见的事情,但在谷歌上找不到任何东西。有什么想法吗?

谢谢。

最佳答案

点击事件实际上并不是在所有情况下都处理按键,而是使点击事件起作用的按钮。当您使用带有 tabindex 属性的 div 使其可通过键盘访问时,单击处理程序将不会在您按 enter 时触发。

HTML

<div id="click-only" tabindex="0">Submit click only</div>
<div id="click-and-press" tabindex="0">Submit click and press</div>​

jQuery

$("#click-only").click(function (e) {
addToBody(); // Only works on click
});

$("#click-and-press").bind("click keypress", handleClickAndPress(function (e) {
addToBody(); // Works on click and keypress
}));

function addToBody() {
$("body").append($("<p/>").text("Submitted"));
}

function handleClickAndPress(myfunc) {
return function (e) {
if (e.type != "keypress" || e.keyCode == 13) {
myfunc(e);
}
};
}

所以要回答这个问题,我认为除了 yoda2k 的解决方案之外,没有更好的方法(适用于所有情况)。

关于javascript - 考虑到可访问性的 jQuery 事件绑定(bind) - 单击和按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5408810/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com