Javascript自定义keyshortcut循环故障

Javascript自定义keyshortcut循环故障,javascript,Javascript,我是个新手,希望你们中的一个能帮我?我想做的是在我的网页上写一个快捷键,这很有效。我只是不知道我该如何精确地循环它,使这个人能够多次使用这个函数。我感谢任何帮助,也希望我不必深入jQuery 这是我的Javascript代码: function addZero(i) { if(i < 10){ i = "0" + i; }; return i; }; var d = new Date(); var h = addZe

我是个新手,希望你们中的一个能帮我?我想做的是在我的网页上写一个快捷键,这很有效。我只是不知道我该如何精确地循环它,使这个人能够多次使用这个函数。我感谢任何帮助,也希望我不必深入jQuery

这是我的Javascript代码:

    function addZero(i) {
    if(i < 10){
        i = "0" + i;
    };
    return i;
};

    var d = new Date();
        var h = addZero(d.getHours());
        var m = addZero(d.getMinutes());
        var text = "Press left arrow";
            var combo = h + ":" + m;


var isRight=false;
    document.onkeyup=function(e){
        if(e.which == 39) isRight=false;     
    };document.onkeydown=function(e){
        if (e.which == 39) isRight=true;

        if(isRight == true){
                document.getElementById('Time_Shortcut').innerHTML = combo + "<br>" + text;
                return false;
            } else if(e.which == 37){
                document.getElementById('Time_Shortcut').style.display = "none";
            };
    };

感谢您的时间,如果我把事情弄糟了,请提前道歉。

从您的描述中我可以收集到,您希望在网页上检测到按键,然后让java函数执行某项操作并将该操作返回网页


你能告诉我一个用户要完全理解你的问题需要做的步骤和结果吗?

不要在HTML中使用p标记,而是使用div并给它一个名称,然后在函数中引用你的div,这样时间就会显示在那里。当要显示时,使div可见为真;当要隐藏时,使div可见为假。我添加了一个带有嵌入式脚本和css的html解决方案

    <html>
<head>
</head>
<body>
<script>
////////////////////////
///// create a div /////
////////////////////////
document.write('<div id="time" style="position: absolute; visibility:hidden; overflow:hidden; z-index=2; width: 200; height: 100; top:100; left:100; padding:0"></div>');

/////////////////////////////////////
///// set backgtound of div red /////
/////////////////////////////////////
time.style.backgroundColor="#ff0000";

///////////////////////////////////////////////
///// keyboard event listner              /////
///// on keypress goto function disptime /////
//////////////////////////////////////////////

document.onkeypress = disptime;

/////////////////////////////
///// function disptime /////
/////////////////////////////
function disptime(e) {

///////////////////////////////////////////
///// get the charcode of key pressed /////
///////////////////////////////////////////

    evt = e || window.event;
    var charCode = evt.keyCode || evt.which;

///////////////////////////////////////////
///// if up or down arrow key pressed /////
///////////////////////////////////////////
if (charCode==38)
{
    var d = new Date();

    var curr_hour = d.getHours();
    var curr_min = d.getMinutes();
    var c2 = document.getElementById("time");
    c2.style.visibility='visible';  
    document.getElementById('time').innerHTML=(curr_hour + ":" + curr_min);
}

if (charCode==40)
{
    var c2 = document.getElementById('time');
    c2.style.visibility='hidden';   

}
}

</script>

</body>
</html>

////////////////////////
/////创建一个div/////
////////////////////////
文件。写(“”);
/////////////////////////////////////
/////设置div red的后退/////
/////////////////////////////////////
time.style.backgroundColor=“#ff0000”;
///////////////////////////////////////////////
/////键盘事件列表器/////
/////关于按键转到功能disptime/////
//////////////////////////////////////////////
document.onkeypress=disptime;
/////////////////////////////
/////函数显示时间/////
/////////////////////////////
函数显示时间(e){
///////////////////////////////////////////
/////获取按键的字符码/////
///////////////////////////////////////////
evt=e | | window.event;
var charCode=evt.keyCode | | evt.which;
///////////////////////////////////////////
/////如果按了向上或向下箭头键/////
///////////////////////////////////////////
if(charCode==38)
{
var d=新日期();
var curr_hour=d.getHours();
var curr_min=d.getMinutes();
var c2=document.getElementById(“时间”);
c2.风格.可视性=‘可见’;
document.getElementById('time').innerHTML=(curr\u hour+“:”+curr\u min);
}
if(charCode==40)
{
var c2=document.getElementById('time');
c2.风格。可视性=‘隐藏’;
}
}

基本上,它当前是设置好的,因此当您打开页面时没有任何内容,但如果按向右箭头键,它将以小时和分钟为单位打开时间,如果按向左箭头键,它将返回到不显示任何内容。这工作得很好,但在我按下左箭头键使其不显示任何内容后,我无法按下右键使其再次显示时间。我需要帮助来找出如何循环这两个。谢谢你的回复:)很高兴它成功了,祝你的项目好运。请有人关闭这个回答,并给我一些分数。感谢一切工作如图所示,我只需从document.onkeypress=disptime更改它;to document.onkeydown=disptime;非常感谢你,你帮我省去了很多头痛。
    #Time_Shortcut {
    position: fixed;
    opacity: .3;
    padding: 20px;
    font-family: "Lucida Console", Times, Serif;
    color: #BD3A26;
    text-decoration: none;
    font-size: 22px;
    left: 30px;
    font-weight: bold;
}
    #Time_Shortcut:hover {
        opacity: .45;
    }
    <html>
<head>
</head>
<body>
<script>
////////////////////////
///// create a div /////
////////////////////////
document.write('<div id="time" style="position: absolute; visibility:hidden; overflow:hidden; z-index=2; width: 200; height: 100; top:100; left:100; padding:0"></div>');

/////////////////////////////////////
///// set backgtound of div red /////
/////////////////////////////////////
time.style.backgroundColor="#ff0000";

///////////////////////////////////////////////
///// keyboard event listner              /////
///// on keypress goto function disptime /////
//////////////////////////////////////////////

document.onkeypress = disptime;

/////////////////////////////
///// function disptime /////
/////////////////////////////
function disptime(e) {

///////////////////////////////////////////
///// get the charcode of key pressed /////
///////////////////////////////////////////

    evt = e || window.event;
    var charCode = evt.keyCode || evt.which;

///////////////////////////////////////////
///// if up or down arrow key pressed /////
///////////////////////////////////////////
if (charCode==38)
{
    var d = new Date();

    var curr_hour = d.getHours();
    var curr_min = d.getMinutes();
    var c2 = document.getElementById("time");
    c2.style.visibility='visible';  
    document.getElementById('time').innerHTML=(curr_hour + ":" + curr_min);
}

if (charCode==40)
{
    var c2 = document.getElementById('time');
    c2.style.visibility='hidden';   

}
}

</script>

</body>
</html>