Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.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_Html_Css - Fatal编程技术网

为什么我的javascript函数在移动视图中不起作用?

为什么我的javascript函数在移动视图中不起作用?,javascript,html,css,Javascript,Html,Css,我有一个函数,可以在div中添加和删除一个类,这样它就可以在多维数据集的面之间进行交换。问题是当它在移动设备中时,它就不工作了。函数运行,但不删除currentClass变量。当我做控制台日志的时候。它显示没有值,但应该在函数运行时添加值。我不知道为什么没有给它赋值 const handleClick = e => { e.preventDefault(); var cube = document.querySelector('.cube'); var showClas

我有一个函数,可以在div中添加和删除一个类,这样它就可以在多维数据集的面之间进行交换。问题是当它在移动设备中时,它就不工作了。函数运行,但不删除currentClass变量。当我做控制台日志的时候。它显示没有值,但应该在函数运行时添加值。我不知道为什么没有给它赋值

const handleClick = e => {
  e.preventDefault();
    var cube = document.querySelector('.cube');
    var showClass = 'show-' + e.currentTarget.value;
    console.log(showClass);
    if (currentClass) {
      cube.classList.remove(currentClass);
    }
    cube.classList.add(showClass);
    currentClass = showClass;
    var x = window.matchMedia('(max-width: 600px)');
    if (x.matches) {
      handleDrawerToggle();
    }
  };
顺便说一下,currentClass变量是在函数之前声明的。在移动视图中,它使用if语句添加类,但不删除上一个类。因此,当您单击导航栏按钮时,它会不断添加类。在桌面模式下按预期工作,但在移动视图中不工作。任何帮助都将不胜感激

以下是迄今为止该应用程序的实时版本: 这是github:

好的,我想出来了。我必须将currentClass变量声明得更高一级。我犯了一个简单的错误