Heim  >  Artikel  >  Web-Frontend  >  Warum sind meine JavaScript-Funktionen nicht in JSFiddle definiert?

Warum sind meine JavaScript-Funktionen nicht in JSFiddle definiert?

Susan Sarandon
Susan SarandonOriginal
2024-11-01 06:41:02231Durchsuche

Why are my JavaScript functions not defined in JSFiddle?

Warum JavaScript nicht auf JSFiddle läuft: Funktionsdefinitionsfehler beheben

Beim Versuch, JavaScript-Code auf JSFiddle auszuführen, können Fehler auftreten Dies zeigt an, dass bestimmte Funktionen nicht definiert sind. Dies liegt daran, dass JSFiddle Code in einer Onload-Funktion kapselt und so den Umfang der Funktionsdefinitionen einschränkt.

Funktionsdefinition und Referenzierung

Im bereitgestellten Code sind Funktionen wie fillList( ) und mySelectList() werden innerhalb der Funktion window.onload definiert. Dies bedeutet, dass diese Funktionen nur aus dieser Funktion heraus zugänglich sind. Sie versuchen jedoch, sie als globale Variablen in Ihrem HTML zu referenzieren, was zu den Fehlern führt.

Lösungsoptionen

Um dieses Problem zu beheben, haben Sie drei Möglichkeiten:

a) Funktionen als globale Variablen ändern

  • Am einfachsten und schnellsten, aber nicht ideal, die Lösung besteht darin, die Syntax der Funktionsdefinition zu ändern in:
<code class="javascript">window.fillList = function() {}; // makes fillList a global function</code>

b) Unauffälliges JavaScript

  • Der empfohlene Ansatz ist: Verwenden Sie unaufdringliches JavaScript, das HTML von JavaScript trennt:
<code class="javascript">// attach event listener from within JavaScript
var mySelectList = document.getElementById('mySelectList');
mySelectList.addEventListener('change', function() {
    alert('Selection changed!');
});</code>

c) Ändern der JSFiddle-Einstellungen

  • Mit JSFiddle können Sie Umbruchoptionen festlegen. Ändern Sie die Kapselungseinstellung auf „Kein Wrap – Kopf oder Körper“, um die Eindämmung des Codes innerhalb einer Onload-Funktion zu verhindern.

Empfehlung

Option b) wird dringend empfohlen da es Best Practices und Code-Organisation fördert. Durch die Trennung von HTML und JavaScript erhalten Sie mehr Kontrolle und Flexibilität über Ihren Code.

Das obige ist der detaillierte Inhalt vonWarum sind meine JavaScript-Funktionen nicht in JSFiddle definiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn