我正在尝试显示一个显示一个div的页面,然后当用户点击空格键时,该div将被隐藏并显示下一个div。我开始使用CSS将所有div的可见性设置为隐藏,但是当我按空格时没有任何反应。
$divID = 0;
document.getElementById("div0").style.visibility="visible";
function updateDiv(event){
// If the spacebar was pressed
if (event.type == "keydown" && event.which == 32){
// Hide the current div
$doc.getElementById("div" + $divID).style.visibility="hidden";
++divID;
// Move to next div
$doc.getElementById("div" + $divID).style.visibility="visible";
}
}
// Handle events
document.on("keydown", updateDiv);
答案 0 :(得分:1)
您不是很一致,变量名称随着时间的推移而变化,文档不是jQuery对象而且没有on()
方法等。
var divID = 0;
document.getElementById("div0").style.visibility="visible";
function updateDiv(event){
// If the spacebar was pressed
if (event.type == "keydown" && event.which == 32){
// Hide the current div
document.getElementById("div" + divID).style.visibility="hidden";
++divID;
// Move to next div
document.getElementById("div" + divID).style.visibility="visible";
}
}
// Handle events
$(document).on("keydown", updateDiv);
答案 1 :(得分:1)
var ctr = 1;
var max = 3;
$(document).on('keypress', function (e)
{
if (e.which == 32)
{
$('div').hide();
$('#d' + ctr).show();
ctr++;
if (ctr > max)
ctr = 1;
}
});
答案 2 :(得分:0)
doc
未定义。
您需要var doc = document;
您的事件处理程序需要挂钩到窗口。
window.addEventListener("keydown", updateDiv);
在常规变量前面不需要$
。
你并没有真正使用jQuery,所以请不要这样做。
答案 3 :(得分:0)
我稍微更改了你的代码以使用jQuery(因为它被列为标签,我认为它是可用的)。此代码允许您根据需要设置任意数量的div,在隐藏旧div之前不显示新div,并在到达时保持最后一个div可见:
$('div').hide();
$('div:first').show();
$('body').keypress(function(event) {
$visdiv = $('div:visible');
if(event.which == 32 && !$visdiv.is(':last')) {
$visdiv.hide(400, function() {
$(this).next('div').show();
});
}
});
答案 4 :(得分:0)
HTML:
<div class="bloc selected">Bloc 1</div>
<div class="bloc hidden">Bloc 2</div>
<div class="bloc hidden">Bloc 3</div>
<div class="bloc hidden">Bloc 4</div>
JS:
$(document).on('keypress', function (e) {
var code = e.keyCode || e.which;
if(code == 32) {
var next = ($('.selected').next('.bloc').length > 0) ?
$('.selected').next('.bloc') : $('.bloc1');
$('.selected').toggleClass('selected hidden');
next.toggleClass('selected hidden');
}
});
CSS:
.selected {
display:bloc;
}
.hidden {
display:none;
}
FIDDLE:http://jsfiddle.net/Zq8j2/2/