Hallo liebe Forumsgemeinde,
ich schreibe momentan ein relative umfangreiches Javascript-Skript, was dynamisch Panoramen in einen Player laden kann und analog auch Hotspots dynamisch anlegt. Das funktioniert soweit so gut. In meinen Hotspots definiere ich eine Funktion im onclick-Attribut, die beim Click aufgerufen werden soll. Leider wirft die Konsole mir bei der Ausführung einen Reference Error mit dem Hinweis, dass die angegebene Funktion nicht definiert ist. Ich vermute ein Kontextproblem, habe aber keine wirkliche Lösung parat.
Den gesamten Quellcode zu posten wäre unangebracht, deswegen schildere ich kurz die wichtigsten Funktionen, die die Sache tangieren:
Die Grundlage meiner Applikation bildet ein Router-Objekt aus Backbone.js. Wird eine bestimmte Route "erreicht", so wird die Funktion
embedPanoramaDummy(onReadyFunction)
ausgeführt. Der Funktion wird die Referenz auf eine Funktion übergeben, die ausgeführt werden soll, sobald der Player erfolgreich initialisiert wurde. In der Funktion wird die Basismethode
embedpano mit onReady : onReadyFunction
aufgerufen. Im Javascript-Code erfolgt mein Aufruf folgendermaßen:
embedPanoramaDummy(function() { panoramaReady(parameter); });
Ich musste diesen Weg wählen, weil ich panoramaReady Parameter aus embedPanoramaDummy umgebenen Funktion des Routers übergeben muss. In der panoramaReady-Funktion wird
setPanoramaByNodeId(panoramaNodeId)
aufgerufen. Diese ruft wiederum eine
setViewerXML(panorama, hotspots)
auf. In dieser Methode wird das neue XML generiert. Darin befinden sich Hotspots, die folgendes beinhalten:
onclick="js(onHotspotClick())"
Nachdem das XML generiert wurde wird über mein Viewer-Objekt
meinViewer.call("loadxml(...);")
aufgerufen.
Ich hoffe meine Schilderung war verständlich, sodass mir jemand helfen kann. Ich stehe natürlich für alle Fragen bereit und bedanke mich schon jetzt für den Support.