Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
纯javascript布尔标志不';不行。为什么?_Javascript - Fatal编程技术网

纯javascript布尔标志不';不行。为什么?

纯javascript布尔标志不';不行。为什么?,javascript,Javascript,嗨 有谁能告诉我为什么每次我点击黄色按钮控制台日志时都会显示值false??(每次单击后应交替为右假右假等) 哪里错了 var btn=document.querySelectorAll('.cdi-link'); var dropdown=document.getElementsByClassName('cdi-dropdown') 对于(变量i=0;i

有谁能告诉我为什么每次我点击黄色按钮控制台日志时都会显示值false??(每次单击后应交替为右假右假等)

哪里错了

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,因此。。。。。