我正在使用JavaScript和Prototype并从用户那里获取按键。我用这样的代码成功地捕获了返回,空格和箭头:
Event.observe(window, "keyup", function(e) {
switch (e.keyCode) {
case Event.KEY_RETURN:
case Event.KEY_RIGHT:
case 32: // space
// do something
break;
}
});
我的问题是空格和箭头一直在滚动页面。有没有办法阻止他们滚动页面?
答案 0 :(得分:8)
使用e.preventDefault()
停止浏览器的默认行为
答案 1 :(得分:6)
在keyup
中阻止默认浏览器操作为时已晚。请在keydown
事件中执行此操作,并使用Prototype的Event.stop
方法:
Event.observe(document, "keydown", function(e) {
switch (e.keyCode) {
case Event.KEY_RETURN:
case Event.KEY_RIGHT:
case 32: // space
// do something
Event.stop(e);
break;
}
});
答案 2 :(得分:5)
来自the Prototype documentation:
Event.stop(event)
停止事件的传播并阻止其传播 触发默认操作 最终
因此,在Event.stop(e);
之前添加break;
可以解决您的问题。
另外,您应该针对keydown
事件执行此操作,因为keyup
为时已晚。
答案 3 :(得分:0)
e.preventDefault()适用于Chrome。