Frage von bodonje, 32

Button mit Javascript function funktioniert erst wenn ich die function in der browser console eingegeben hab woran liegt das?

Antwort
von PeterKremsner, 21

Schreib doch mal den HTML Tag des Buttons rein und die Codestelle im JS die Aufgerufen werden soll.

Und was meinst du mit wenn du die Funktion in der Browser Console eingegeben hast?

Definierst du die Funktion in der Console oder rufst du sie einfach nur auf?

Kommentar von bodonje ,

definieren und im head habe ich den Javascript verlinkt

Kommentar von PeterKremsner ,

Wenn du die Funktion definierst stimmt eventuell der Gültigkeitsbereich nicht

Die Funktionen in der Console sind global gültig, deine Definition in der js Datei eventuell nicht.

Verwendest du requirejs, coffeescript, typescript oder irgendetwas?

Bei diesen Bibliotheken werden keine Funktionen in den globalen Namespace geschrieben und sind somit auch nicht über Buttons aufrufbar.

Da musst du dann je nach verwendeter Bibliothek, die JS beim onclick umändern, oder du setzt das onclick Event auf den Button aus dem JS Code direkt heraus.

Eine andere aber nicht sehr saubere Methode wäre, das Explizite schreiben der Funktion in den globalen Namespace also:

window["Funktionsname"] = function(xxxxxx){

....................};

Zumindest hätte ich es so in Erinnerung, dass man dadurch diese Kapselung brechen kann.

Antwort
von regex9, 11

Gibst du nur die Funktionsdefinition ein oder rufst du sie über die Konsole auch auf?

Schau einmal, ob das Skript bereits geladen wurde, wenn du auf den Button drückst. Und was gibt dir die Konsole aus? Irgendwelche Fehler?

Kommentar von bodonje ,

is not defined obwohl der Javascript im head verlinkt ist

Kommentar von regex9 ,

Poste deinen kompletten Code einmal bei http://pastebin.com/.

Keine passende Antwort gefunden?

Fragen Sie die Community