【发布时间】:2019-05-18 11:43:05
【问题描述】:
我正在开发一个项目,当 1)单击按钮或 2)按下“返回”键时,javascript 函数会运行。 javascript 函数将 div 的可见性设置为“可见”,并更改“onclick”和“onKeyDown”属性以在第二次单击/按下时运行不同的函数。
例如,单击按钮(或按回车键)一次会使 div 出现,单击两次会使它消失。
问题是我无法弄清楚如何在触发函数时让 javascript 更改“onKeyDown”属性。这可能吗?
我的代码基于这个答案:Call a function when the enter button is pressed via Javascript
到目前为止,这是我的代码:
function visible() {
document.getElementById("box").style.visibility = "visible";
document.getElementById("button").onclick = hidden;
document.body.onKeyDown = "if(event.keyCode==13) hidden()";
}
function hidden() {
document.getElementById("box").style.visibility = "hidden";
document.getElementById("button").onclick = visible;
document.body.onKeyDown = "if(event.keyCode==13) visible()";
}
#box {
visibility:hidden;
width:200px;
height:200px;
background:red;
}
#button {
width:120px;
height:50px;
background:lightblue;
}
<html>
<body onKeyDown="if(event.keyCode==13) visible()">
<div id="box"></div>
<div id="button" onclick="visible()" ></div>
</body>
</html>
点击蓝框会出现红框,按回车也会出现;但再次按回车不会使框消失。
【问题讨论】:
-
第一个问题写得很好!
标签: javascript html