javascript - JavaScript - 与 parentNode.replaceChild 结合使用时,我无法让 appendChild 操作工作
问题描述
我有一个在 JS 中使用 replaceChild 操作生成的汉堡菜单。如果 JS 被禁用,则有一个标准按钮代替汉堡包。
JS 汉堡是一个带有“点击”功能的伪元素。我需要生成这个带有 classList 的元素,这样我就可以设置和控制汉堡动画的样式。
目前 createElement > classList.add > appendChild 不起作用。我不确定为什么我的这部分代码没有生成所需的子元素。但是,我能够毫无问题地生成“按钮”。
<nav>...
<div class="hamburger-wrapper">
<div hidden data-menu-button class="nav-toggle">Menu</div> <--// pseudo-element goes here
<ul id="menu" data-menu>
<li><a class="color-shift" href="/">Case Studies</a></li>
<li><a class="color-shift" href="/">About Izzy</a></li>
</ul>
...</nav>
(function menu() {
const fakeButton = document.querySelector('[data-menu-button]');
const menu = document.querySelector('[data-menu]');
const toggleMenuButton = document.createElement('button');
toggleMenuButton.textContent = fakeButton.textContent;
toggleMenuButton.setAttribute('aria-expaned', false);
toggleMenuButton.setAttribute('aria-controls', 'menu');
toggleMenuButton.classList.add('nav-toggle');
const toggleMenuHamburger = document.createElement('div');
toggleMenuHamburger.classList.add('hamburger-menu');
toggleMenuHamburger.appendChild(toggleMenuButton);
fakeButton.parentNode.replaceChild(toggleMenuButton, fakeButton);
toggleMenuButton.addEventListener('click', function () {
let expanded = this.getAttribute('aria-expanded') === 'true' || false;
this.setAttribute('aria-expanded', !expanded);
menu.hidden = !menu.hidden;
});
menu.hidden = true;
})();
(function hamburgerAnimation() {
$('.hamburger-wrapper').on('click', function () {
// console.log('click');
$('.hamburger-menu').toggleClass('animate');
});
})();```
解决方案
推荐阅读
- angular - Angular Material 不可滚动的sidenav
- python - Request .get 如何使用字符串作为参数
- java - 如何以编程方式查找 iOS 应用程序的堆内存?
- javascript - 从对象复制符号属性
- c - 将管道设置为播放状态后,Gstreamer 回调未命中
- r - 如何保留 pickerInput liveSearch 过滤器。现在,一旦做出选择,过滤器就会重置
- security - 为什么 Wildfly 17 抱怨缺少 BearerTokenAuthenticationMechanism ctor?
- react-native - 如何从登录屏幕导航到包含底部选项卡的主屏幕
- java - 如何在我的 Java 应用程序中获取电话号码?
- javascript - 如何在html和javascript中获取变量数组中的多个值