我想不出一个更好,更具体的标题,所以如果它太含糊了,我很抱歉。我不知道我的代码有什么问题,所以在这个问题上不能再具体了。我欢迎有人给出一个更好的标题的例子。
我正在建立一个Wordpress网站。在它里面,我有一个移动导航菜单栏(通过Wordpress功能进入),当我点击它时,它会显示菜单,当再次点击时,它会隐藏它。我还有第二个功能,当同样的菜单栏被点击时,它会隐藏搜索栏,当我再次点击它时,它应该会显示搜索栏(而菜单是隐藏的)。
问题是,当第二个功能出现时,当单击菜单时,它会显示菜单并隐藏搜索栏,但在第二次单击时,当它应该隐藏菜单并显示搜索栏时,什么也不会发生。菜单栏保持可见,搜索栏保持隐藏。
这是针对以下站点的:http://iga.yohut.ie/
HTML/PHP
<div class="primary-nav-wrapper-1">
<div class="primary-nav-wrapper">
<div class="primary-nav-container">
<a href="javascript:void(0)" onclick="toggleNav(); moveSearch();">
<div class="nav-icon">
<div id="burger-icon"></div>
<div id="burger-icon"></div>
<div id="burger-icon"></div>
</div>
</a>
<?php wp_nav_menu(
array(
'theme_location' => 'primary',
'container' => 'nav',
'container_class' => 'primary-nav',
'menu_class' => 'navbar',
'menu_id' => 'navbar',
)
); ?>
</div>
</div>
</div>CSS
#search-5 {
display: block;
width: 80%;
margin: 0 auto 20px auto;
position: absolute;
top: 335px;
left: 10%;
}JS
function toggleNav() {
var nav = document.getElementById("navbar");
if (!nav.style.display || nav.style.display === "none") {
nav.style.display = "block";
} else {
nav.style.display = "none";
}
};
function moveSearch() {
var nav = document.getElementById("navbar");
var search = document.getElementById("search-5");
if (nav.style.display = "block") {
search.style.display = "none";
}
else {
search.style.display ="initial";
}
}当我console.log一个响应时,我只在打开菜单时得到一个响应,但在试图关闭它时没有响应。
我对Javascript只有一个基本的了解,所以这可能是一个简单的错误。
有人能帮帮我吗?
发布于 2019-11-08 07:13:39
在moveSearch()函数中,如果比较:=应该为===,则有一个拼写错误
https://stackoverflow.com/questions/58758149
复制相似问题