2017-02-04 19 views
-1

Das mobile Menü Sieht gut aus und reagiert auf die Größenänderung, aber wenn Sie auf das Menü für Handys klicken, erscheint es nicht oder reagiert überhaupt nicht.JavaScript zeigt kein Navigationsmenü an

<nav> 
     <ul class="topnav" id="myTopnav"> 
     <li><a href="index.html" class="selected">Home</a></li> 
     <li><a href="about.html">About</a></li> 
     <li><a href="skills.html">Skills</a></li> 
     <li><a href="mywork.html"> My Work </a></li> 
     <li><a href="contact.html">Contact</a></li> 
     <li class="icon"> 
     <a href="scripts.js:void(0);" onclick="myFunction()">&#9776;</a> 
    </li> 
    </ul> 
    </nav> 

Dies ist die JavaScript

function myFunction() { 
var x = document.getElementById("myTopnav"); 
if (x.className === "topnav") { 
    x.className += "responsive"; 
} else { 
    x.className = "topnav"; 
} 

}

+3

Fügen Sie CSS oder etwas hinzu; ab sofort ist es unmöglich zu sagen, ob es tatsächlich angezeigt werden soll oder nicht. – thesublimeobject

+1

vielleicht das Problem ist, dass die Klasse für myTopnav wird entweder 'topnav' oder' topnavresponsive' ... haben benötigen Sie einen Raum? 'Topnav responsive' ... auch, schauen Sie in mit' 'element.classList.contains' element.classList.add'' element.classList.remove' als Alternative saubereren Code suchen: p –

Antwort

0

Sie ein Leerzeichen vor "responsive" einsetzen können. Gefällt mir:

function myFunction() { 
    var x = document.getElementById("myTopnav"); 
    if (x.className === "topnav") { 
     x.className += " responsive"; 
    } else { 
     x.className = "topnav"; 
    } 
}