我知道有人问过这个问题 here ,但答案对我需要做的没有用,所以我想我会给出一些示例代码并稍微解释一下......
$(document).keypress(
function (event) {
// Pressing Up or Right: Advance to next video
if (event.keyCode == 40 || event.keyCode == 39) {
event.preventDefault();
$(".current").next().click();
}
// Pressing Down or Left: Back to previous video
else if (event.keyCode == 38 || event.keyCode == 37) {
event.preventDefault();
$(".current").prev().click();
}
}
);
它基本上禁用箭头键以将它们用于其他用途,但这样做:
$(document).keypress(function () { });
不再启用默认功能...我需要它来滚动页面而不必为其创建滚动功能...
有什么想法吗?
谢谢,
马特
最佳答案
添加一个新的处理程序并不会取代以前的处理程序,它会添加一个新的处理程序。您可能正在寻找 jQuery#unbind
如果你试图删除以前的处理程序,但如果你要经常打开和关闭它,你可能最好使用一个标志告诉你是否阻止现有处理程序中的默认设置。
添加和稍后删除处理程序如下所示:
function keypressHandler() { /* ... */};
$('#thingy').keypress(keypressHandler);
// ...elsewhere...
$('#thingy').unbind('keypress', keypressHandler);
关于javascript - 如何在执行 event.preventDefault() 后重新启用默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2608714/