[英]When i click on menu button it open menu but when i click close button its not closing it
我正在为一个网站制作一个菜单按钮,所以当我点击菜单时,它会改变它的innerhtml,但是当我点击关闭按钮时它不会改变它的innerhtml。
js代码
function MENU() {
var MENUITEMS = document.getElementById('MENU')
MENUITEMS.innerHTML=" <a style='text-decoration:none;' href='OUR_WORKS.html'>OUR_WORKS</a><p class='LGND'>ABCD</p><button id='CLOSE'class='LGND' onclick='CLOSE()'>CLOSE_MENU</button>"
}
function CLOSE() {
var MENUITEMS = document.getElementById('MENU')
MENUITEMS.innerHTML=" <p onclick='MENU()' id='MENU'>MENU</p>"
}
Html代码
<p onclick="MENU()" id="MENU"
>MENU</p>
每次单击容器#MENU
时,它都会显示菜单。 问题是即使菜单打开,点击#MENU
也会显示菜单。 因此单击“关闭”按钮将关闭菜单,然后再次打开它。
解决此问题的一种方法是将菜单的 state 存储在变量中 - 如下所示:
var OPEN = false, MENU_ELEM = document.getElementById("MENU"); function TOGGLEMENU(){ if(OPEN){ //menu is open, we need to close it OPEN = false; MENU_ELEM.innerHTML = "<p onclick='TOGGLEMENU()'>MENU</p>"; } else { //menu is closed, we need to open it OPEN = true; MENU_ELEM.innerHTML = "<a style='text-decoration:none;' href='OUR_WORKS.html'>OUR_WORKS</a><p class='LGND'>ABCD</p><button id='CLOSE'class='LGND' onclick='TOGGLEMENU()'>CLOSE_MENU</button>"; } }
<div id="MENU"><p onclick="TOGGLEMENU()">Menu</p></div>
请参见下面的示例。
几点建议:
p
标签不适用于按钮。 改用button
元素。innerHTML
会干扰可访问性。 考虑使用 static HTML 标记和 CSS 样式来实现效果。 const btn = document.querySelector('button'); const menu = document.querySelector('ul'); btn.addEventListener('click', toggle); function toggle() { menu.classList.toggle('active'); btn.classList.toggle('active'); }
ul { opacity: 0; transform: translateX(-20px); pointer-events: none; transition: opacity.2s, transform.2s; } ul.active { opacity: 1; transform: translateX(0); pointer-events: all; } button.active::after { content: ' X'; }
<button>MENU</button> <ul> <li> <h2>Our Works</h2> </li> <li>Item 1</li> <li>Item 2</li> <li>Item 3</li> <li>Item 4</li> <li>Item 5</li> <li>Item 6</li> </ul>
我的解决方案:-
HTML:-
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/index.css">
<script src="js/index.js"></script>
<title>SITE</title>
</head>
<body>
<div id="Menu"><button onclick="Menu();" id="Imenu" >MENU</button></div>
</body>
</html>
JS:-
//Menu opening
function Menu() {
var btn=document.getElementById("Menu");
btn.innerHTML="<button onclick='oldstagemenu();' id='Imenu' ><a href='your-File.html'>OUR WORKS</a> | <a href='your-File.html'>ABOUT US</a> | <a href='Your-File.html'>CONTACT-US</a> | CLOSE-MENU❌</button>"
}
//Menu closing
function oldstagemenu() {
var btn=document.getElementById("Menu");
btn.innerHTML="<button onclick='Menu();' id='Imenu' >MENU</button>"
}
只需将 onclick function 从打开菜单更改为关闭菜单。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.