我从youtube教程(https://www.youtube.com/watch?v=nQK0kz65wpo)获得了一些代码,但我无法找到它无法正常工作的原因。它是一个响应式导航栏。我想点击菜单时将ul(class ="显示")更改为(ul class ="")。我不明白为什么它不起作用,而且我已经有很长一段时间了。任何帮助都会非常感谢!对不起,我是新来的。
<nav>
<ul class="showing">
<a href="#"></a><li>1</li></a>
<a href="#"></a><li>1</li></a>
<a href="#"></a><li>1</li></a>
<a href="#"></a><li>1</li></a>
<a href="#"></a><li>1</li></a>
<a href="#"></a><li>1</li></a>
</ul>
<div class="handle">Menu</div>
</nav>
在脑袋里
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
身体
<script>
$('.handle').on('click', function(){
$('nav ul').toggleClass('showing');
});
</script>
答案 0 :(得分:1)
您应该更改逻辑并添加一些CSS代码:
CSS代码:
.hidding{
display: none;
}
HTML code:
<nav>
<ul>
<a href="#"></a><li>1</li></a>
<a href="#"></a><li>1</li></a>
<a href="#"></a><li>1</li></a>
<a href="#"></a><li>1</li></a>
<a href="#"></a><li>1</li></a>
<a href="#"></a><li>1</li></a>
</ul>
<div class="handle">Menu</div>
</nav>
Javascript代码:
$('.handle').on('click', function(){
$('nav ul').toggleClass('hidding');
});
答案 1 :(得分:0)
答案 2 :(得分:0)
似乎工作得很好。也许你没有附加到showing
类的任何样式,所以你没有意识到它实际上正在工作?
$('.handle').on('click', function(){
$('nav ul').toggleClass('showing');
});
ul.showing {
background: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<nav>
<ul class="showing">
<a href="#"></a><li>1</li></a>
<a href="#"></a><li>1</li></a>
<a href="#"></a><li>1</li></a>
<a href="#"></a><li>1</li></a>
<a href="#"></a><li>1</li></a>
<a href="#"></a><li>1</li></a>
</ul>
<div class="handle">Menu</div>
</nav>
答案 3 :(得分:0)
您的代码应该有效。你放在标记下面的脚本是不是?如果它在上面它将无法工作,因为javascript将在html甚至呈现之前执行。
2个解决方案 -
将javascript放在页面底部,或将其包装在$(document).ready中,如下所示。
$(document).ready(function(){
$('.handle').on('click', function(){
$('nav ul').toggleClass('showing');
});
});
$(document).ready即使在html之上也能正常工作。
答案 4 :(得分:-1)
<script>
var clicked=false;
$('.handle').on('click', function(){
if(clicked){
$('nav ul').addClass('showing');
clicked =true;
}
else
{
$('nav ul').removeClass('showing');
clicked =false;
}
});
</script>