pup*_*eno 7 javascript keyboard events scroll prototypejs
我正在使用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;
}
});
Run Code Online (Sandbox Code Playgroud)
我的问题是空格和箭头一直在滚动页面.有没有办法阻止他们滚动页面?
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;
}
});
Run Code Online (Sandbox Code Playgroud)
Event.stop(event)
停止事件的传播并防止最终触发其默认操作.
因此在添加Event.stop(e);之前break;应该解决您的问题.
此外,你应该为这次keydown活动做这件事,因为keyup为时已晚.