2016-10-10 4 views
0

Ich versuche, die addEventListener() -Funktion um den Kopf zu bekommen und habe einen Code auf einer localhost-Installation eingerichtet, aber wenn ich den Code ausführe bekomme ich eine Fehlermeldung: Uncaught TypeError: section2 .addEventListener ist keine Funktion.addEventListener Einen Fehler werfen

Der Code ist unten, im Grunde, wenn Abschnitt2 lädt (die Videoinhalt hält), möchte ich Abschnitt1 (die einen Preloader enthält) verschwinden. Um den Code zu vereinfachen, verwende ich jQuery für die Variablen. Ich habe console.log verwendet, um zu testen, dass die Variablen auf der Live-Site angezeigt werden und sie sind.

var section1 = $("#section1"), 
    section2 = $("#section2"); 


section2.addEventListener("load", function(){ 

    section1.style.display="none"; 

}) 

Ich kann nicht herausfinden, warum es nicht funktioniert?

+2

'addEventListener' ist eine Funktion auf' EventTarget' Objekte, wie 'HTMLElement's, _not_ jQuery Objekte. – Xufox

+0

Siehe jQuery [on()] (http://api.jquery.com/on/): "Hängen Sie eine Ereignishandlerfunktion für ein oder mehrere Ereignisse an die ausgewählten Elemente an." – showdev

+0

Danke. Das hat den Fehler in der Konsole gestoppt, Abschnitt1 verschwindet jedoch nicht wirklich, wenn Abschnitt 2 geladen ist? –

Antwort

2

Wie Xufox sagte direkt unter Ihrem Post, es ist kein Objekt, jQuery wählt durch $ ('...').

Option a) reine Javascript:

var section1 = document.getElementById('section1'), 
    section2 = document.getElementById('section2'); 

Option b) JQuery:

section2.on("load", function(){ 
    section1.hide(); 
}) 
+0

Danke. Das hat den Fehler in der Konsole gestoppt, Abschnitt1 verschwindet jedoch nicht wirklich, wenn Abschnitt 2 geladen ist? –

+0

@EmilyChewy separates Problem. 'load' funktioniert nur bei bestimmten Arten von Elementen, wie Bildern und iframes. weißt du, Dinge, die Dinge laden. –

+0

Oh, ich verstehe. Entschuldigung, ich bin neu in JS. Ich muss herausfinden, an welchen Elementen es arbeitet. Das hat mich etwas in die Knie gezwungen, wie man einen JS-Pre-Loader dann macht. Ich denke, ich muss es zu der hinzufügen und die Last auf den Körper oder etwas laufen lassen? –