我有此功能,可以从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变量声明为更高一级。我的简单错误。