javascript - 为什么我的 javascript 函数在移动视图中不起作用?
问题描述
我有这个函数可以从 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 变量声明高一级。我犯了一个简单的错误。
推荐阅读
- javascript - 为什么我在 react 中运行 npm start 时会出错?
- jquery - 如何在没有任何插件或其他插件的情况下制作 Swipe 幻灯片?
- java - 如何从不同的片段访问 Room 数据库?
- .net - 如何将 MS Teams 对话参考保存在数据库中?
- reactjs - 如果基于对象调用 setState(Obj),则不会调用 useEffect
- spring - feign 客户端 - 从服务中检索 jwt 令牌并在 feign 客户端中自动设置它
- html - 我想做一个冻结的标题
- python - 如何将jupyter笔记本颜色主题放入vs代码
- azure - 如何调用 azure web 作业并传递参数
- sharepoint - SPFolder.MoveTo 保留子文件夹的元数据,同时重置根文件夹的元数据