我有此功能,可以从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语句添加类,但不删除先前的类。因此,当您单击导航栏按钮时,它会继续添加类。在桌面模式下可以正常工作,但在移动视图下则无法工作。任何帮助,将不胜感激。

这是到目前为止该应用程序的实时版本:
https://portfolio-3d.herokuapp.com/
这是github:
https://github.com/apgomez85/3d-cube-portfolio

最佳答案

好吧,我想通了。我必须将currentClass变量声明为更高一级。我的简单错误。

10-05 20:39