在关键点击时切换div或其内容不带ajax或jquery库

时间:2013-09-12 15:47:21

标签: javascript html key switching

我找到了这段代码:

 <script>
document.onkeydown = function(e) { // or document.onkeypress
    e = e || window.event;
    if (e.keyCode == 32 || e.keyCode == 09) {
        alert("do something");
    }
};
</script>

它会在空格键或标签页上显示弹出窗口。 我不想弹出,而是改变div。

我找到了另一个代码,用于更改文本点击时的div。 这是:

<html>
<head>
 <script type="text/javascript">
  top.visible_div_id = 'right';
  function toggle_visibility(id) {
     var old_e = document.getElementById(top.visible_div_id);
     var new_e = document.getElementById(id);
     if(old_e) {
        console.log('old', old_e, 'none');
        old_e.style.display = 'none';
     }
    console.log('new', new_e, 'block');
     new_e.style.display = 'block';   
     top.visible_div_id = id;          
  }
  </script>
</head>
<body onload="toggle_visibility('left');">

<div onclick="toggle_visibility('left');">
  Left
</div>

<div onclick="toggle_visibility('right');" >
  Right
</div>

 <div id="left" >
    This is the content for the left side
 </div>

 <div id="right" >
    This is the content for the ride side
 </div>

-------
-------

</body>
</html>

我几乎想要混合代码,所以它们具有相同的效果,但用键盘点击替换了文本点击。

我尝试过添加

 <script>
document.onkeydown = function(e) { // or document.onkeypress
    e = e || window.event;
    if (e.keyCode == 32 || e.keyCode == 09) {
        toggle_visibility('right');
    }
};
</script>

但这只是第一次工作,并没有实际切换它。我可以使用两个不同的角色,但我只想要空格键。希望你能帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

你是否只是试图在div中显示和隐藏内容,如果这样的话可以起作用

<div onkeydown="change();">
   <div id='div1'></div>
   <div id='div2'></div>
</div>

<script>
function change(){
//Hide the content
    document.getElementById('div1').style.display = "none";
//Show new content
    document.getElementById('div2').style.display = "block";
 }
</script>

答案 1 :(得分:0)

这是一个有效的示例,只需点击键盘上的空格键即可。复制整个内容并在浏览器中打开以进行测试:

<html>
<head>
<script type="text/javascript">
    top.visible_div_id = 'right';
    function toggle_visibility(id) {
        var old_e = document.getElementById(top.visible_div_id);
        var new_e = document.getElementById(id);
        if(old_e) {
            console.log('old', old_e, 'none');
            old_e.style.display = 'none';
        }
        console.log('new', new_e, 'block');
        new_e.style.display = 'block';
        top.visible_div_id = id;
    }

    document.onkeydown = function(e) { // or document.onkeypress
        e = e || window.event;
        if (e.keyCode == 32) {
            if (top.visible_div_id == "right") {
                toggle_visibility('left')
            } else{
                toggle_visibility('right')
            }
        }
    };

</script>
</head>
<body onload="toggle_visibility('left');">

<div >
    Left
</div>

<div  >
    Right
</div>

<div id="left" >
    This is the content for the left side
</div>

<div id="right" >
    This is the content for the right side
</div>

</body>
</html>