【发布时间】:2015-08-19 12:57:46
【问题描述】:
我一直在做一些需要我使用空格键来触发事件的事情。我一直在做的事情要复杂得多,但我已将其简化为基础知识,作为我需要做的一个示例。
这个想法是,当空格键被按住时,它会突出显示这个 div,而当它松开时,它会取消突出显示。我有一个问题,当我按下空格时,默认是让滚动条分阶段向下跳。为了解决这个问题,我尝试添加阻止默认值,然后最终使用 return false。
这太棒了...直到我意识到,当我在输入字段文本框中测试输入时,我失去了在输入时放置空格的能力。
我认为我需要的是:
- 在我完成之后以某种方式(撤消)阻止默认值或返回 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();
}
});
【问题讨论】:
标签: javascript jquery html keydown preventdefault