我一直在做一个需要使用空格键触发事件的东西。我正在处理的事情更加复杂,但我已经将其简化为基础示例以说明我需要做的事情。
想法是当按住空格键时,它会突出显示这个
,松开时取消突出显示。我遇到的问题是,当我按下空格时,默认行为是使滚动条向下跳跃。为了解决这个问题,我尝试添加preventDefault,然后最终使用return false。
这很好......直到我意识到当我测试输入文本框中的文字时,我失去了输入空格的能力。
我认为我需要:
- 在完成使用后(撤消)preventDefault或return false,但我无法弄清楚如何做到这一点,因为我需要在整个页面上使用此函数。
- 停止空格键在按住时使页面向下滚动,但仍保留在输入文本时添加空格的功能。
真的不知道该怎么做。
这里是我用于此示例的代码:
HTML
<div class="container">
<div class="moo">I am moo</div>
<input/>
</div>
CSS:
.container {
height:9000px;
}
.moo {
border:1px solid black
}
.red {
background:red;
}
input {
margin-top:30px;
}
脚本:
$(document).keydown(function(e) {
if(e.keyCode === 32) {
$('.moo').addClass('red');
//event.preventDefault();
//event.stopPropagation();
return false;
}
else {
$('.moo').removeClass('moo');
}
});
$(document).keyup(function(e) {
if(e.keyCode === 32) {
$('.moo').removeClass('red');
event.stopPropagation();
}
});