[英]How to create a Toggle on/Off Function on a keypress in JavaScript
我有一个测试脚本来实现我的总体目标的一部分,但我需要创建某种打开和关闭 function 的开关。到目前为止我的代码是:
tgl = "on"
function ToggleON() {
console.log("on");
tgl = "off"
}
function ToggleOFF() {
console.log("off");
tgl = "on"
}
document.addEventListener('keydown',function(e){
var key = e.keyCode || e.which;
if(key == 81){
if (tgl == "on") {
ToggleON();
}
if (tgl == "off") {
ToggleOFF();
}
}
});
任何帮助都适用
封闭可以解决问题。
var toggle = function() {
var on = false;
return function() {
if(!on) {
on = true;
//Do stuff if ON
return;
}
//Do stuff if OFF
on = false;
}
}();
toggle(); //Set OFF as default
document.addEventListener('keydown',function(e) {
var key = e.keyCode || e.which;
if(key === 81) {
toggle();
}
}, false);
这可能有效。 我将使用布尔值而不是字符串“ on / off”,更短,更简单,更清晰。
var tgl=true;
function toggle() {
tgl?console.log('on'):console.log('off')
tgl=!tgl;
}
document.addEventListener('keydown',function(e){
var key = e.keyCode || e.which;
if(key == 81)
toggle();
}
我认为将项目切换为参数是执行此操作的最佳方法。 这使toggle
功能对您代码中可能需要toggle
功能的其他区域很有用。
var tgl = false;
function toggle(item) {
item === true ? item = false : item = true;
return item;
}
document.addEventListener('keydown',function(e){
var key = e.keyCode || e.which;
if(key == 81)
tgl = toggle(tgl);
}
如果您希望它是开/关字符串。
var tgl = "off";
function toggle(item) {
item === "on" ? item = "off" : item = "on";
return item;
}
document.addEventListener('keydown',function(e){
var key = e.keyCode || e.which;
if(key == 81)
tgl = toggle(tgl);
}
class Main {
constructor() {
this.state = 0;
this.onLoad();
}
onLoad() {
addEventListener('keydown', event => {
if (event.key == 'q') {
this.state ^= 1;
this.result();
}
});
}
result() {
console.log(this.state);
}
}
const main = new Main();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.