Dojo, Dijit...Objekte initialisieren?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Dojo, Dijit...Objekte initialisieren?

    Hallo zusammen,

    war lange nicht hier, dem Forum wurde ja endlich nen Upgrade verpasst...wurde auch Zeit .

    Mein Anliegen...

    Ich bastel jetzt verstärkt mit dem Dojokram rum, gefällt mir sehr gut. U.a. nutze ich die Tooltips:

    Code:
    dojoType="dijit.Tooltip"
    Weitere Details hier. Was soweit gut funktioniert...ABER

    Es scheint nur zu funzen, wenn die Seite kpl neu geladen wird, sieht man auch, da die Elemente erst nach abgeschlossenem Reload richtig positioniert werden. Wenn ich jetzt via Javascript und innerHTML neuen Code mit den Tooltips hinzufüge, bleiben diese ohne Funktion. Lassen sie sich irgendwie 'manuell' initialisieren? Hat jemand ne Idee?

    Viele Grüße

  • #2
    Versuch mal das:
    Code:
    new dijit.Tooltip({
        connectId: ["yourElementId"],
        label: "Your Tooltip"
    });

    Kommentar


    • #3
      Danke Dir.

      Die Frage war vllt ein bisschen doof gestellt...ich dachte eher an so nen 'Groupbefehl', der praktisch den HTML Code checkt und die vorhanden und ggf. unbekannten Objekte selbst handlet. Der Code an sich ist ja bereits vorhanden und ich könnte mir auch noch Fälle vorstellen, bei denen es nicht nur um Toolstips geht. Wenn ich z.B. nen Template, welches massig Dijits enthält, lade und per innerHTML schreibe, wird es doch bestimmt ne Möglichkeit geben, eine Art Refresh abzusetzen? Hoffe ich doch

      Kommentar


      • #4
        Normalerweise wird die Initialisierung der Dijits per window.onload getriggert. Dieser Event findet aber nicht statt, wenn du DOM Nodes manipulierst. Du könntest ihn nochmal auslösen, aber das hätte eventuell Nebenwirkungen.

        Statt die Dijits direkt an window.onload zu binden, feuerst du bei window.onload einen neuen, selbst erfundenen Event. Der wird von einem Listener gefangen, welcher alle registrierten Dijits initialisiert. Solche Dijits die keine zweite Initialisierung zulassen, können sich aus der Registry austragen.
        Nach jeder DOM-Manipulation feuerst du den erfunden Event erneut. Dadurch werden die Dijits initialisiert, die sich durch die Manipulation neu registriert haben.

        Kommentar


        • #5
          Hallo,

          Villeicht suchst du den dojo parser ?
          Den kann man wie folgt benutzen:

          Code:
          dojo.require("dojo.parser");
          dojo.parser.parse(element);

          Kommentar

          Lädt...
          X