只是一个简单的问题,我似乎做了很多:
$saveBtn.bind("click keypress", function(e)
{
if (e.type != "keypress" || e.keyCode == 13)
{
// Do something...
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
有没有更快捷的方法将"动作"侦听器绑定到按钮?我希望始终确保我的按钮与事件监听器同时触发点击和输入键...这似乎是一个相当普遍的事情想要做但在谷歌上找不到任何东西.有什么想法吗?
谢谢.
单击事件实际上并不在每种情况下处理按键,而是使单击事件起作用的按钮。当您使用具有 tabindex 属性的 div 使其可通过键盘访问时,当您按 Enter 键时,单击处理程序将不会触发。
\n\n超文本标记语言
\n\n<div id="click-only" tabindex="0">Submit click only</div>\n<div id="click-and-press" tabindex="0">Submit click and press</div>\xe2\x80\x8b\nRun Code Online (Sandbox Code Playgroud)\n\njQuery
\n\n$("#click-only").click(function (e) {\n addToBody(); // Only works on click\n});\n\n$("#click-and-press").bind("click keypress", handleClickAndPress(function (e) {\n addToBody(); // Works on click and keypress\n}));\n\nfunction addToBody() {\n $("body").append($("<p/>").text("Submitted"));\n}\n\nfunction handleClickAndPress(myfunc) {\n return function (e) {\n if (e.type != "keypress" || e.keyCode == 13) {\n myfunc(e);\n }\n };\n}\nRun Code Online (Sandbox Code Playgroud)\n\n因此,为了回答这个问题,我认为除了 yoda2k 的解决方案之外,没有更好的方法(在每种情况下都有效)。
\n