使用相同的按键显示一个div,并使用Javascript反复隐藏另一个div
让我们调用有问题的2个div div1和div2 我试图做的是使用enter键显示div1和隐藏div2(如果div2当前可见),反之亦然。现在我有了代码,所以按enter键将显示div1和隐藏div2,但要返回到显示div2和隐藏div1,必须使用shift键。它现在的工作方式,但我希望它,所以我只需要按回车键,每次我希望的div交替 下面是javascript代码使用相同的按键显示一个div,并使用Javascript反复隐藏另一个div,javascript,jquery,css,html,Javascript,Jquery,Css,Html,让我们调用有问题的2个div div1和div2 我试图做的是使用enter键显示div1和隐藏div2(如果div2当前可见),反之亦然。现在我有了代码,所以按enter键将显示div1和隐藏div2,但要返回到显示div2和隐藏div1,必须使用shift键。它现在的工作方式,但我希望它,所以我只需要按回车键,每次我希望的div交替 下面是javascript代码 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var keys = [];
var code = [13];
var keys1=[];
var code1 = [16];
$(document).keydown(function(keyEvent) {
keys.push(keyEvent.keyCode);
keys1.push(keyEvent.keyCode);
if ( keys.length > code.length ) {
keys.shift();
}
if ( keys1.length > code1.length ) {
keys1.shift();
}
if ( keys.toString() == code.toString() ) {
showAns();
}
if ( keys1.toString() == code1.toString() ) {
hideAns();
}
});
});
</script>
$(文档).ready(函数(){
var键=[];
var代码=[13];
var keys1=[];
变量代码1=[16];
$(文档).keydown(函数)(keyEvent){
按键(keyEvent.keyCode);
按键1.push(keyEvent.keyCode);
如果(keys.length>code.length){
keys.shift();
}
如果(keys1.length>code1.length){
键1.shift();
}
if(key.toString()==code.toString()){
showAns();
}
if(keys1.toString()==code1.toString()){
hideAns();
}
});
});
你知道如何完成我的要求吗?我会给你一个正确的方向,但不会直接给你答案 您需要找到一种方法来检查元素可见性的属性(这可能会对您有所帮助!),并将其添加到您的conidtion中,如下所示:
if(KeyIsPressed && element.IsVisible)
{
HideElement
}
else if(KeyisPressed)
{
ShowElement
}
您可以使用“state”变量保存该信息,然后将其同步到DOM,而不必太花哨:
var state = {
"div1": true,
"div2": false,
};
synchronizeState();
$(document).on("keydown", function(event) {
if(event.which === 13) {
state.div1 = !state.div1;
state.div2 = !state.div2;
synchronizeState();
}
});
function synchronizeState() {
if(state.div1) {
$("#div1").show();
} else {
$("#div1").hide();
}
if(state.div2) {
$("#div2").show();
} else {
$("#div2").hide();
}
}
工作示例:尝试以下您想要实现的示例:
var toShow = true;
$(document).keydown(function(keyEvent) {
if(keyEvent.keyCode == 13){
$('#div1').toggle(toShow);
$('#div2').toggle(!toShow);
toShow = !toShow;
}
});
我尝试了一些类似的方法:if(keyEvent.keyCode==13&&document.getElementById(“hideAnswer”).style.visibility==“visible”)showAns和类似的方法,但它仍然不起作用。我最终同意了尼克斯的答案,结果成功了。谢谢你