javascript - 从菜单项而不是顶级菜单触发模式卡 - HTML、CSS、JS
问题描述
我是编码新手,希望有人能帮助理解我哪里出错了。我在从导航栏项目触发模式卡弹出窗口时遇到问题。到目前为止,我尝试过的所有操作都会触发顶部菜单项的模式。下拉菜单中的每个导航栏项目都将有一个指向模式卡的链接。
预先感谢您的帮助!!
const item = document.querySelector(".navbar-item");
const modalBg = document.querySelector('.modal-background');
const modal = document.querySelector('.modal');
item.addEventListener('click', () => {
modal.classList.add('is-active');
});
modalBg.addEventListener('click', () => {
modal.classList.remove('is-active');
});
<section>
<nav class="navbar has-shadow" role="navigation" aria-label="dropdown navigation" id="navbar_link_modal">
<div class="navbar-brand">
<a class="navbar-burger" id="burger">
<span></span>
<span></span>
<span></span>
</a>
</div>
<div class="navbar-menu" id="nav-links">
<div class="navbar-start">
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" data-target="#modal">Ford</a>
<div class="navbar-dropdown">
<a class="navbar-item">
Explorer
</a>
<a class="navbar-item" href="#framingLumber">
Focus
</a>
<a class="navbar-item">
Flex
</a>
<a class="navbar-item">
F-150
</a>
</a>
</div>
</div>
</div>
</div>
</nav>
</section>
<div class="modal is-active" id="modal">
<div class="modal-background"></div>
<div class="modal-card" id="framingLumber">
<header class="modal-card-head">
<p class="modal-card-title">Modal title</p>
<button class="delete" aria-label="close"></button>
</header>
<section class="modal-card-body">
<!-- Content ... -->
</section>
<footer class="modal-card-foot">
<button class="button is-success">Save changes</button>
<button class="button">Cancel</button>
</footer>
</div>
</div>
解决方案
您将模式定位在顶级菜单中,data-target="#modal"
这是错误的,因为没有 id 为“modal”的元素。您需要在您的菜单项中执行此操作,因为您的模式的 id 在data-target="#framingLumber"
哪里并且不需要。所以你的代码看起来像这样:framingLumber
href
<div class="navbar-menu" id="nav-links">
<div class="navbar-start">
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link">Ford</a>
<div class="navbar-dropdown">
<a class="navbar-item">Explorer</a>
<a class="navbar-item" data-target="#framingLumber">Focus</a>
<a class="navbar-item">Flex</a>
<a class="navbar-item">F-150</a>
</div>
</a>
</div>
</div>
</div>
推荐阅读
- java - Java并发:可重置启用/禁用等待条件
- javascript - 我收到 SyntaxError:WordPress 主题中的解析器错误
- r - spatstat 不均匀 K-、F- 和 G- 函数中的意外行为
- python - 如何用特定键而不是键盘中断异常停止无限循环?
- javascript - 使用本地存储查找返回用户的特定用户名
- javascript - 在 datepicker 中选择日期后,在我的年龄字段中获取 NaN
- angular - 模板解析错误:意外字符“EOF”
- python - Cesium - ImportError:无法导入名称重新提升
- php - 在命令窗口中为 Aria 项目使用 curl 我得到了我想要的但在 PHP 文件中它返回空字符串
- amazon-web-services - 如果我将弹性 IP 关联到我正在运行的 EC2 实例,它是否会丢弃其当前的公共 IP?