javascript - 当用户在另一个菜单选项中时禁用汉堡菜单
问题描述
当用户在另一个菜单选项中时,我只需要禁用我的汉堡菜单。不幸的是,没有什么可以禁用它,因为菜单始终处于活动状态。
PS:功能 disableLink() 和ableLink() 不起作用,其他一切正常。
document.querySelector('.hamburger-menu').addEventListener('click', () => {
document.querySelector('.nav-wrapper').classList.toggle('change');
var x = document.getElementById("top-nav-id");
if (x.style.display === "block") {
x.style.display = "none";
} else {
x.style.display = "block";
}
document.querySelector('#home-menu').addEventListener('click', () => {
document.getElementById("class-nav-1").style.display = "block";
disableLink();
});
document.querySelector('#close-window').addEventListener('click', () => {
document.getElementById("class-nav-1").style.display = "none";
ableLink();
});
});
function disableLink() {
document.getElementById('nav-wrapper').disabled=true;
document.getElementById('nav-wrapper').removeAttribute('href');
document.getElementById('nav-wrapper').style.textDecoration = 'none';
document.getElementById('nav-wrapper').style.cursor = 'default';
document.getElementById('nav-wrapper').style.visibility = hidden;
document.getElementById('nav-wrapper').style['pointer-events'] = 'none';
document.getElementById('hamburger-menu').disabled=true;
document.getElementById('hamburger-menu').removeAttribute('href');
document.getElementById('hamburger-menu').style.textDecoration = 'none';
document.getElementById('hamburger-menu').style.cursor = 'default';
document.getElementById('hamburger-menu').style.visibility = hidden;
document.getElementById('hamburger-menu').style['pointer-events'] = 'none';
}
function ableLink() {
document.getElementById('change').disabled=false;
document.getElementById('change').addAttribute('href');
document.getElementById('change').style.textDecoration = 'solid'
document.getElementById('change').style.cursor = 'pointer';
}
解决方案
在单击事件侦听器中,我可以看到“导航包装器”、“汉堡菜单”和“更改”是类而不是 id。因此,document.getElementById
您应该使用上面使用的选择器,而不是使用document.querySelector
.
在旁注中,阅读css 选择器,以便在使用类名选择元素时更具体。否则,如果针对特定元素,则使用 id。
推荐阅读
- angular - 在 Angular 的新选项卡中打开组件?
- php - PHP:编写可以确定文件类型的 If 语句
- python - 正则表达式在python中删除数字前的逗号
- linux - 如何对子文件夹中的所有图像使用 ImageMagick 转换命令
- javascript - @google/maps 请求查询不一致
- javascript - 在 Electron 中捕获下载/保存备份
- xamarin.ios - 某些图像未出现在图像视图控件 xamarin.ios 上
- shell - '在使用 azure 时在 powershell 脚本中是什么意思?
- oracle - 如何在 8.30am、8.30-9am 和 9am 之后获取员工打卡数据
- sql - 在sql中获取由多个字符分隔的子字符串