Javascript - Can ' T get 'getElementsByClassName" funktioniert

Im kämpfen, um herauszufinden, warum mein code nicht funktioniert. Hier ist der Teil des JS:

function init() {
    var showMenu = document.getElementsByClassName('showMenu'),
        perspectiveWrapper = document.getElementById( 'perspective' ),
        container = perspectiveWrapper.querySelector( '.container' ),
        contentWrapper = container.querySelector( '.wrapper' );

    showMenu.addEventListener( clickevent, function( ev ) {
        ev.stopPropagation();
        ev.preventDefault();
        docscroll = scrollY();
        //change top of contentWrapper
        contentWrapper.style.top = docscroll * -1 + 'px';
        //mac chrome issue:
        document.body.scrollTop = document.documentElement.scrollTop = 0;
        //add modalview class
        classie.add( perspectiveWrapper, 'modalview' );
        //animate..
        setTimeout( function() { classie.add( perspectiveWrapper, 'animate' ); }, 25 );
    });
}

Hier ist ein Teil der HTML:

<div id="topBar">
    <h1>Company</h1>
    <a href="#" class="entypo-menu showMenu"></a>
</div>

<div class="line"></div>

<div id="fixedBar">
    <h1>Company</h1>
    <a href="#" class="entypo-menu showMenu"></a>
</div>

Aus irgendeinem Grund, wenn ich das laden der Seite bekomme ich diesen Fehler:

TypeError: undefined is not a function (evaluating 'showMenu.addEventListener')

Ich verstehe das nicht, denn wenn ich ändere diese Zeile in:

var showMenu = document.getElementsByClassName('showMenu'),

zu:

var showMenu = document.getElementById( 'showMenu' ),

Es funktioniert!

Nicht warum die class-Selektor arbeiten, aber die id wird? Ich versuche, beide links mit der Klasse showMenu zum ausführen der JS.

InformationsquelleAutor George | 2015-02-07
Schreibe einen Kommentar