javascript - .toggleClass 在函数内部不起作用
问题描述
当我把$("header nav ul").toggleClass("open")
它放在点击功能之外时,它可以工作,但当我把它放在里面时它就不行了。这是为什么??
警报方法正在运行,因此单击 a 标记有效。
<header>
<div class="wrapper">
<h1 class="logo">Blesto</h1>
<nav>
<a href="" class="burger-nav"></a>
<h2>Main Navigation</h2>
<ul class="burger-nav-ul">
<li><a href="">Our Story</a></li>
<li><a href="">Menu</a></li>
<li><a href="">Reservations</a></li>
<li><a href="">News</a></li>
<li><a href="">Reviews</a></li>
</ul>
</nav>
</div>
</header>
$(document).ready(function(){
$(".burger-nav").click(function(){
alert("hi");
$("header nav ul").toggleClass("open");
});
});
解决方案
您需要停止锚元素的默认行为。
$(".burger-nav").click(function(event){
event.preventDefault();
alert("hi");
$("header nav ul").toggleClass("open");
});
运行是正确alert
的,但是默认行为是运行,它将指向任何href
指向的地方。在这种情况下,相同的页面。
推荐阅读
- python - 向熊猫数据框添加多列
- ruby-on-rails - Ruby on Rails 更新数据库字段迁移
- python - 替换张量中大于零的所有值
- javascript - Javascript替换具有属性的span标签内的值
- ios - 为什么 NSMutableDictionary setValue 崩溃?
- gradle - 如何自定义 Cordapp 示例
- php - SQL Pivot Query 中的 PHP 数组显示不同的数据
- c# - 对其他进程进行强制收集和压缩有用的情况
- google-analytics - 如何在谷歌分析推荐部分显示名称?
- javascript - 如何将对象的对象数组转换为一维数组?