Uncaught ReferenceError: jQuery is not defined

Hallo zusammen,

ich bekomme folgende Fehlermeldung bei einem Plugin: “Uncaught ReferenceError: jQuery is not defined”.

jQuery müsste ja hier vor den anderen Scripts eingebunden werden. Laut Quellcode ist das doch der Fall oder habe ich hier einen Gedankenfehler?

Habe die Scripte hier eingebunden: {block name=‘frontend_index_header_javascript_jquery_lib’ append} 

 

Viele Grüße,

Matthias

Moin @mewald‍,

nutzt du Shopware 5.3?
Dann kann das auch ein anderes Problem sein.

Mit Shopware 5.3 haben wir eine neue Funktion implementiert, die die Javascript-Dateien asynchron lädt.
Das heißt, dass die Webseite schon gerendert werden kann, ohne auf das Javascript warten zu müssen.
Dies bringt entsprechend  gefühlte  Performance-Gewinne.

In dem Fall wäre es also so, dass unser Javascript asynchron geladen wird, dein vom Plugin ausgeliefertes Javascript aber synchron lädt und somit womöglich  vor  jQuery lädt.

Jetzt gibt es zwei Lösungswege:

  1. Du registrierst dein eigenes Javascript per Theme_Compiler_Collect_Plugin_Javascript  Event - dann würde sich Shopware darum kümmern, dass dein Script zum richtigen Zeitpunkt angewendet wird bzw. halt auch asynchron geladen wird.
    2. Du schaust hier, wie du mit deinen eigenen Scripten warten kannst, bis unser jQuery usw. feritg geladen hat.

Gruß,
Patrick  Shopware

1 Like

Hey [@Patrick Stahl](http://forum.shopware.com/profile/1869/Patrick Stahl “Patrick Stahl”)‍,

vielen Dank für deine Antwort.

Ich habe das jetzt so versucht aber schon wieder ein neues Problem :smiley:

Folgendes habe ich in der Bootstrap ergänzt:

$this->subscribeEvent(
            'Theme_Compiler_Collect_Plugin_Javascript',
            'addJavascriptFiles'
        );

/**
     * Add javascript.
     *
     * @param Enlight_Event_EventArgs $args
     *
     * @return ArrayCollection
     */
	public function addJavascriptFiles(Enlight_Event_EventArgs $args)
    {		
		$js = array(
			__DIR__. '/Views/frontend/_resources/js/pixup_set_creator.js',
			__DIR__. '/Views/frontend/_resources/js/jquery.tooltipster.js',
			__DIR__. '/Views/frontend/_resources/js/slick.js'
		);

        return new ArrayCollection(array($js));
		
    }

Mit einer Datei klappt es einwandfrei. Sobald ich mehrere einbinden will kommt folgende Meldung:

“Während der Bearbeitung von Shop “Hauptshop Deutsch” ist ein Fehler aufgetreten: Some plugin tries to compress a javascript file, but the file Array doesn’t exist”

EDIT: Sry war mein Fehler habe bei dem return das array() zuviel gehabt…

Klappt alles danke dir (=

 

Viele Grüße,

Matthias

@Patrick Stahl

I have upgraded Shopware shop to 5.3 now pay direct payment plugins not working.

I have debug and found that javascript are loading very lastely and before that pay direct js are loaded. Here its showing jQuery OR $ not found because checkoout.js is loading before all js and jquery js so that is showing problem and stopped working.

I would appreciate if you can provide a good solution to fix this.

Das ist bereits das zweite mal, dass nach einem Update JQuery nicht ausgeführt werden kann! Wie oft wollt ihr das denn noch umstellen?

Gruß, Nikolaj