纯javascript布尔标志不';不行。为什么?
嗨 有谁能告诉我为什么每次我点击黄色按钮控制台日志时都会显示值false??(每次单击后应交替为右假右假等) 哪里错了纯javascript布尔标志不';不行。为什么?,javascript,Javascript,嗨 有谁能告诉我为什么每次我点击黄色按钮控制台日志时都会显示值false??(每次单击后应交替为右假右假等) 哪里错了 var btn=document.querySelectorAll('.cdi-link'); var dropdown=document.getElementsByClassName('cdi-dropdown') 对于(变量i=0;i
var btn=document.querySelectorAll('.cdi-link');
var dropdown=document.getElementsByClassName('cdi-dropdown')
对于(变量i=0;i
一般情况下▶;
在学校里学习英语和英语的时间是9654年;
第9654页;
这是因为当单击发生时,该标志始终设置为true,因此它会将自身设置回false。标志的声明应移到单击处理程序之外。将标志移到eventListener和for循环之外,因为每次单击或循环时,您都会将标志设置为true
var btn = document.querySelectorAll('.cdi-link');
var dropdown = document.getElementsByClassName('cdi-dropdown')
var flag = true;
for (var i = 0; i < btn.length; i++) {
btn[i].addEventListener('click', function() {
var button = this;
var arrow = button.lastElementChild.lastElementChild;
var btnColor = button.lastElementChild;
if (flag) {
flag = false;
console.log(flag);
} else {
flag = true;
console.log(flag);
}
});
}
var btn=document.querySelectorAll('.cdi-link');
var dropdown=document.getElementsByClassName('cdi-dropdown')
var标志=真;
对于(变量i=0;i
但是,如果您想为不同的单击使用不同的标志,请使用地图:
var btn = document.querySelectorAll('.cdi-link');
var dropdown = document.getElementsByClassName('cdi-dropdown')
var flags = {};
for (var i = 0; i < btn.length; i++) {
btn[i].addEventListener('click', function() {
var button = this;
var arrow = button.lastElementChild.lastElementChild;
var btnColor = button.lastElementChild;
if (flag[i]) {
flag[i] = false;
console.log(flag[i]);
} else {
flag[i] = true;
console.log(flag[i]);
}
});
}
var btn=document.querySelectorAll('.cdi-link');
var dropdown=document.getElementsByClassName('cdi-dropdown')
var标志={};
对于(变量i=0;i
您需要在函数外部声明变量,否则每当函数完成时它就会被删除。演示中没有黄色按钮。每次单击var flag=true代码>设置为true,因此。。。。。