"jQuery" ist undefiniert

  • Hei Leute,


    ich hab ein kleines Problem mit meinem Lightbox....


    in der Konsole wird mir ein Fehler ausgegeben der sich "jQuery" ist undefiniert nennt....


    das ganze aus der lightbox.js:



    was ist da der fehler?

  • Du musst jQuery definieren.
    Was Du da in der Funktion via JS machst ist in etwa das gleiche wie das Bsp hier in PHP:

    PHP
    1. function(){
    2. // aus deinem JS:
    3. // $ = jQuery;
    4. // in PHP
    5. $neue_var = $jQuery;
    6. // der fehler: $jQuery is noch nie definiert worden.
    7. // woher soll den da ein wert kommen?
    8. }
  • Hab mir Lightbox gerade mal angesehen.
    Das Script nutzt offensichtlich jQuery (Framework). Die var jQuery wird wohl beim einbinden von jQuery (Framework) global gesetzt.
    Und das Lightbox Script nutzt intern einen Alias:

    JavaScript
    1. (function() {
    2. // Use local alias
    3. var $ = jQuery;
    4. ...
    5. })();


    Wenn die globale var jQuery also nicht gesetzt ist, dann hast Du sicherlich jQuery (Framework) nicht eingebunden.


    Einbinden:
    http://lokeshdhakar.com/projects/lightbox2/

    Zitat

    2. Look inside the js folder to find jquery-1.11.0.min.js and lightbox.min.js and load both of these files. Load jQuery first.

  • mein Problem ist dass ich das so laden lassen muss:


    HTML
    1. <script type="text/javascript" src="prototype.js"></script>
    2. <script type="text/javascript" src="scriptaculous.js?load=effects,builder"></script>
    3. <script type="text/javascript" src="lightbox.js"></script>
    4. <script src="http://code.jquery.com/jquery-latest.min.js"></script>
    5. <script type="text/javascript" src="jquery-1.7.2.min.js"></script>
    6. <script type="text/javascript" src="jquery.mmenu.min.all.js"></script>
    7. <script type="text/javascript" src="lightbox.js"></script>


    ansonsten funktioniert meine navi nicht... und warum ich 2x die lightbox.js einbinden muss hab ich auch kein plan...

  • Nein, wenn Du es richtig machst, brauchst Du das Lightbox-Skript nicht zweimal einzubinden.
    Ist das diese Lightbox?:
    http://lokeshdhakar.com/projects/lightbox2/
    Dann benutzt sie nicht Prototype, sondern jQuery. Befolge genau die Anleitung auf der Homepage, dann funktioniert es auch. Leider kursieren noch fremde Anleitungen für diese Lightbox, die sich auf die alte Version mit Prototype beziehen.
    Und hier:

    HTML
    1. <script src="http://code.jquery.com/jquery-latest.min.js"></script>
    2. <script type="text/javascript" src="jquery-1.7.2.min.js"></script>


    bindest Du jQuery zweimal ein. Versuche es zunächst mit der latest-Version und lösche die zweite Zeile.
    Ein Problem könnte noch sein, dass die Lightbox und das Menü unterschiedliche jQuery-Versionen brauchen, aber das warte erst mal ab.
    Edit: Habe mich gerade davon überzeugt, dass Du die Lightbox2 von http://lokeshdhakar.com verwendest. Dann musst Du die ersten drei Zeilen in deinen Einzügen löschen. Übrig bleibt:

    HTML
    1. <script src="http://code.jquery.com/jquery-latest.min.js"></script>
    2. <script type="text/javascript" src="jquery.mmenu.min.all.js"></script>
    3. <script type="text/javascript" src="lightbox.js"></script>