$ (…) .SwMegamenu ist keine Funktion [geschlossen]

7

Ich verwende das Smartwave Porto-Design für meine Magento 2-Website. Wenn ich meine Website zum ersten Mal in die Browserkonsole lade, wird überhaupt kein Fehler angezeigt. Jedes Mal, wenn ich die Browserseite durch Drücken von F5oder aktualisiere CTRL+SHIFT+R, wird ein Fehler wie angezeigt Dies in der Browserkonsole und meine Seite wird aus diesem Grund nicht richtig geladen:

Error

Nortonuser
quelle

Antworten:

11
Nicht gefangener TypeError: $ (...). SwMegamenu ist keine Funktion
Nicht gefangener TypeError: $ (...). Stern ist keine Funktion
Nicht gefangener TypeError: $ (...). OwlCarousel ist keine Funktion
Nicht erfasster TypeError: $ .widget ist keine Funktion

Wenn Sie das gleiche leiden, tun Sie dies:

Erstellen Sie eine requirejs-config.js im Stammverzeichnis des untergeordneten Themas

app / design / frontend / Smartwave / porto_child und geben Sie Folgendes ein:
 var config = {
    Shim: {
        jquery: {
            Exporte: '$'
        },
        'Smartwave_Megamenu / js / sw_megamenu':
            {
                deps: ['jquery']
            }, 
        'owl.carousel / owl.carousel.min':
            {
                deps: ['jquery']
            },
        'js / jquery.stellar.min': 
            {
            deps: ['jquery']
            },
        'js / jquery.parallax.min':
            {
            deps: ['jquery']
            }}
    }}
};

Und ändern Sie die Einträge:

    <script src="jquery.js" />
    <script src="bootstrap/js/bootstrap.min.js" />
    <script src="fancybox/js/jquery.fancybox.js" />

Zu:

    <remove src="jquery.js" />
    <remove src="bootstrap/js/bootstrap.min.js" />
    <remove src="fancybox/js/jquery.fancybox.js" />

Innerhalb der Datei:

app / design / frontend / Smartwave / porto_child / Magento_Theme / layout / default_head_blocks.xml

Keine Notwendigkeit mehr, Javascripts zusammenzuführen, keine Javascript-Fehler mehr! Ich brauche die Fancybox nicht, habe sie ausgeschaltet, aber wenn Sie sie benötigen, sollte sie auch in den Anforderungen enthalten sein.

Kishan Patadia
quelle
Danke, es funktioniert, aber warum ist dieses Problem genau?
Nortonuser
Bitte schön. Freut mich zu hören, dass es dir geholfen hat. Das Problem war, dass Menü-JavaScript vor jQuery geladen wurde. Also haben wir die Abhängigkeit dieses Menüs JS definiert.
Kishan Patadia
Hallo @KishanPatadia Ich habe das gleiche Problem mit dem Porto-Thema. Ich habe diesen Code verwendet, der gut funktioniert. Aber nachdem diese Lösung Produktseite zeigt Fehler (Zoom ist keine Funktion)
Chander Shekhar
@ KishanPatadia gibt es ein Problem, wenn ich zur Produktseite gehe, bekam ich eine Fehlermeldung:$(...).zoom is not a function
Nortonuser
$(...).zoom is not a functionist ein Problem mit einem anderen Aufruf einer js-Bibliothek, der nicht zur erforderlichen js-Datei hinzugefügt wurde. Ich habe diesen Bibliotheksaufruf nicht auf der Site, an der ich arbeite, daher kann ich Ihrem Fall keine Codelösung geben, aber wenn Sie sich das Beispiel @KishanPatadia ansehen, sollten Sie in der Lage sein, die Bibliothek zum Zoomen zu finden und hinzuzufügen in die erforderliche js-Datei. In meinem Fall musste ich hinzufügen , fancyboxum meinen mit 'fancybox/js/jquery.fancybox': { deps: ['jquery'] }und dass alle meine Probleme bereinigt.
Circelsix