使用prevent default来接管空格键
我有一些这样的代码来接管空格键的function:
$(document).keypress(function (e) { e.preventDefault(); if (e.which == 32) { // func } });
不幸的是,这会破坏所有密钥的默认值。
这个:
$(document).keypress(function (e) { if (e.which == 32) { e.preventDefault(); // func } });
遗憾的是无效。
我怎样才能防止只有空格键的默认?
谢谢。
试试这个:
//e= e || window.event); you may need this statement to make sure IE doesn't keep the orginal event in motion var code; if (e.keyCode) { code = e.keyCode; } else if (e.which) { code = e.which; } if (code == 32) { if (e.stopPropagation) { e.stopPropagation(); e.preventDefault(); } return false; }
对于上面的一些事情,比如使用$可能会让人感到困惑。 所以我用javascript代码发布我的答案。 将其添加到任何文件中以阻止空格键(或者您也可以添加其他操作)。
window.onkeydown = function (event) { if (event.keyCode === 32) { event.preventDefault(); } };
键码32是空格键。 对于其他密钥代码,请查看此站点:
http://www.javascripter.net/faq/keycodes.htm
祝好运
为什么它无效?
也许你想使用switch()语句而不是if-then-else?
尝试
$(document).keydown(function(e){
if(e.which==32) e.preventDefault();
});
我用它来阻止Esc键,对我来说效果很好。