JavaScript-Code läuft nicht auf JSFiddle.net
Sie sind auf ein Problem gestoßen, bei dem Ihr JavaScript-Code auf einer Live-Site nahtlos funktioniert, aber fehlschlägt zur Ausführung auf JSFiddle.net. Dies ist wahrscheinlich auf ein Scoping-Problem zurückzuführen.
Die BetterSelect-Klasse und ihre Methoden werden in der Funktion window.onload definiert. Dies bedeutet, dass sie nur innerhalb des Funktionsumfangs zugänglich sind und nicht global referenziert werden können, wie Sie es im HTML-Markup getan haben.
Um dieses Problem zu beheben, haben Sie mehrere Möglichkeiten:
Option A:Konvertieren Sie die Funktionen in globale Variablen
window.BetterSelect = function(oSelList) {...}; window.fillList = function() {...}; window.findIt = function() {...};
Option B:Implementieren Sie unauffälliges JavaScript
Trennen Sie Ihren HTML-Code von JavaScript, indem Sie Event-Handler an DOM anhängen Elemente dynamisch aus dem JS-Code. Dadurch wird verhindert, dass direkte Verweise auf Funktionen im HTML erforderlich sind.
Option C:Wrap-Onload-Funktion von JSFiddle deaktivieren
Ändern Sie die Einstellung „Wrap“ in JSFiddle in „Keine Umhüllung (Kopf)“ oder „Keine Umhüllung (Körper)“.
Empfehlung:
Option B ist der empfohlene Ansatz, da sie durch Isolierung den Best Practices entspricht HTML und JavaScript. Es verbessert auch die Wartbarkeit des Codes und ermöglicht eine einfachere Implementierung weiterer Änderungen.
Das obige ist der detaillierte Inhalt vonWarum funktioniert mein JavaScript-Code nicht auf JSFiddle.net?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!