JQuery

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

  • JQuery

    Kann man "$(document).ready(function() {" nur einmal in einem
    Dokument aufrufen?

    Ich würde gern zwei Funktionen damit aufrufen, doch die zweite ruft er nicht auf.

    Da der Content dynamisch erstellt wird ist es nur mit sehr großen
    Aufwand möglich beide Funktionen in einem "$(document).ready(function() {" aufzurufen.


    Danke für Vorschläge.

  • #2
    Warum ist da der aufwand grösser als wenn man sie zweimal aufrufen könnte.
    $(document).ready(function() {a();b();}
    Wobei a und b deine beiden Funktionen sind.
    du kannst auch window.onload = function(){if(typeof (var f=window.onload) == "function"){f();}a();b();}
    benutzen und das beliebig abändern wobei f die vorher window.onload zugeordnete Funktion ist, wenn bereits eine Funktion zugeordnet ist.
    Wenn du den event benötigst, wahrscheinlich wohl eher nicht, kannst du apply() verwenden.

    Kommentar


    • #3
      Original geschrieben von jmc
      Warum ist da der aufwand grösser als wenn man sie zweimal aufrufen könnte.
      $(document).ready(function() {a();b();}
      Wobei a und b deine beiden Funktionen sind.
      du kannst auch window.onload = function(){if(typeof (var f=window.onload) == "function"){f();}a();b();}
      benutzen und das beliebig abändern wobei f die vorher window.onload zugeordnete Funktion ist, wenn bereits eine Funktion zugeordnet ist.
      Wenn du den event benötigst, wahrscheinlich wohl eher nicht, kannst du apply() verwenden.
      Das Problem ist das die beiden aufzurufenden Fkt aus sogenanten Modulen kommen die nach und nach erst geladen werden.
      So:
      $(document).ready(function() {a();}
      $(document).ready(function() {b();}


      Und b() führt er nicht aus.

      Jedes dieser Module erstellt ein eigenständigen aufruf nach:
      $(document).ready(function()...


      Danke schon mal.

      Kommentar


      • #4
        jmc hat doch schon eine - sogar native - Lösung präsentiert.

        Kommentar


        • #5
          Auch bei der JQuery-Version ist der Aufwand nun wirklich nicht grösser.
          Ob du die Funktionen dynamisch oder nicht zuordnest spielt dabei keine Rolle.
          "Diese Module erstellen einein eigenständigen Aufruf..." ->
          Du kannst z.B. einfach statt
          Code:
          $(document).ready(function() {a();}
          $(document).ready(function() {b();}
          Code:
          x=a;
          y=b;
          $(document).ready(function(){x();y();}
          benutzen.
          a = Deine erste im Modul oder wo auch immer erstellte Funktion
          b = Deine zweite Funktion
          x = globale Variable
          y = globale Variable

          Da die Funktionen erst bei geladenem Dokument starten möchtest kannst du die wo du auch immer willst an $(document).ready() übergeben.

          Kommentar


          • #6
            Also eigentlich kann man $(document).ready mehrfach aufrufen, so dass die Funktionen dann hintereinander ausgeführt werden.

            Hast du vielleicht in der ersten Funktion Fehler, die die Ausführung abbrechen? Erscheinen irgendwelche Fehlermeldungen?
            hopka.net!

            Kommentar


            • #7
              Original geschrieben von Hopka
              Also eigentlich kann man $(document).ready mehrfach aufrufen, so dass die Funktionen dann hintereinander ausgeführt werden.

              Hast du vielleicht in der ersten Funktion Fehler, die die Ausführung abbrechen? Erscheinen irgendwelche Fehlermeldungen?
              Hab das Problem gefunden. In einer der Funkt. war ein Fehler.
              Also geht doch mehrfach "$(document).ready" aufzurufen.

              Danke!!

              Kommentar

              Lädt...
              X