Nicht erfasster Referenzfehler: jQuery ist nicht definiert

Lesezeit: 4 Minuten

Ich versuche, eine WordPress-Site mit einem JQuery-Slider-Plugin zusammenzustellen, aber das Plugin wird nicht auf der Seite angezeigt und ich erhalte immer die obige Fehlermeldung.

Obwohl ich mehrere verschiedene Korrekturen ausprobiert habe, die in den Beiträgen anderer vorgeschlagen wurden, kann ich den obigen Fehler anscheinend immer noch nicht beheben, einschließlich des Einfügens des Skript-Tags in die Datei „header.php“. Jede Hilfe wäre sehr willkommen – danke!

Relevanter Code in der Datei „footer.php“.

    <!--Load JQuery-->  
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>


</body> 
</html>

Die Webseite:http://www.advanceprojects.com.au/

  • Was ist falsch daran, die Bibliothek in den Header zu setzen?

    – designtocode

    2. Juli 2013 um 9:30 Uhr

  • Der Fehler liegt daran, dass jQuery nicht geladen wird, bevor der Schieberegler versucht, jQuery zu verwenden, und daher der Fehler ausgelöst wird. Um dies zu beheben, stellen Sie sicher, dass jQuery vor dem Schieberegler geladen wird. Wenn Sie es in die Fußzeile einfügen, müssen Sie den Schieberegler entweder danach oder später in die Fußzeile einfügen oder das jQuery-Include früher verschieben, wie in der Kopfzeile.

    – OG Sean

    3. Januar um 21:55 Uhr


Benutzeravatar von Sushanth --
Sushanth —

Skripte werden immer in einer sequentiellen Reihenfolge ausgeführt.

Im Grunde versuchen Sie also, jQuery zu verwenden, noch bevor die jQuery-Bibliothek geladen wird.

Ihr Skript ist von Nivo abhängig, das wiederum von der jQuery-Bibliothek abhängt.

Verschieben Sie entweder das Skript in die Zeile, nachdem die Bibliothek geladen wurde, oder verschieben Sie die Deklaration der Bibliothek an den Kopf.

Stellen Sie außerdem sicher, dass Sie das Skript darin einschließen DOM Ready Handler.

Die Reihenfolge, in der Sie diese laden sollten, ist also

-- jQuery 
  -- Nivo Slider
  -- your script that uses the above 2 libraries.

Das hat bei mir funktioniert.

Fügen Sie die Zeile hinzu

wp_enqueue_script('jquery');

Dieser Fehler ist aufgetreten, weil jquery nicht enthalten ist und vor dem Laden eines anderen Skripts enthalten sein sollte. Hier ist ein Beispiel:

erstesplugin.php

<?php
/*
Plugin Name: Plugintrial
Description:  plugin to test jquery
Version:      1
Author:       Dismi Paul
*/
function childtheme_custom_login() {
wp_enqueue_script('jquery');

wp_enqueue_script('my-custom-script', plugins_url('/test.js', __FILE__));
?>

    <h1>Welcome to My Homepage</h1>

<p id="intro">My name is Donald.</p>
<p>I live in Duckburg.<?php echo plugins_url('/test.js', __FILE__); ?></p>

    <?php
}

add_action('login_head', 'childtheme_custom_login');

test.js

jQuery(document).ready(function()
{
  jQuery("#intro").css("background-color", "yellow");
});
console.log("it works");

  • Dies hat den Trick für mich getan. Danke schön!

    – David

    4. November 2021 um 7:02 Uhr

Benutzeravatar von Balachandran
Balachandran

Siehe den Link So fügen Sie CSS- und Js-Dateien hinzu

http://codex.wordpress.org/Function_Reference/wp_enqueue_script

Wahrscheinlich vor JQuery wird Ihre Js-Datei geladen.

Fügen Sie also die js-Datei hinzu, nachdem die Jquery-Datei geladen wurde

Beispiel

wp_enqueue_script("yourjs","yourjspath",array('jquery'), true);

In einer neueren Version von WordPress kann dies durch Verbesserungen der Kernleistung verursacht werden:

Versuchen Sie, dies in Ihrer wp.config-Datei zu platzieren:

/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . "https://stackoverflow.com/");

define('CONCATENATE_SCRIPTS', false);

Ich sehe dasselbe Problem mit WooCommerce und dem Siteground Optimizer, wenn Defer Render Blocking Javascript aktiviert ist. Es gibt ein WC-Skript, das zuerst auf jQuery verweist (scheint eine Standardeinstellung für ein Datumsauswahl-Skript zu sein) – kein benutzerdefiniertes Skript, das ich hinzugefügt habe. und kein Plugin, soweit ich das beurteilen kann. Meine Skripte verwenden jQuery und kommen später und sind in Ordnung, aber dies verweist im Head-Tag darauf, bevor jQuery verfügbar ist … Dies geschieht auch nur, wenn Sie NICHT angemeldet sind. Wenn Sie angemeldet sind, funktioniert es gut, melden Sie sich ab , gebrochen.

Das Deaktivieren der Option Defer Javascript in SG Optimizer scheint das Problem zu beheben.

  • Wow, ich habe 5 Stunden damit verbracht, die Lösung zu finden, und viele Methoden ausprobiert, die zu funktionieren schienen, aber nicht funktionierten. Ich war in genau der gleichen Situation wie Sie und Ihre hervorgehobene Zeile hat gerade den Trick gemacht, lol. Danke!

    – Josh Liu

    15. Dezember 2022 um 5:55 Uhr

Benutzeravatar von som
so M

Verwenden

jQuery(document).ready(function(){
    jQuery('#wpns_slider').nivoSlider({effect:'random',slices:2,});
});

anstatt

jQuery(window).load(function(){
     jQuery('#wpns_slider').nivoSlider({effect:'random',slices:2,});
});

$(window).load(function() {... }) explizit an das Ladeereignis des Fensters bindet, wurde Ihr Code bereits zuvor ausgelöst jQuery Bibliothek geladen. Sie müssen verwenden DOM Ready Handler.

  • Wow, ich habe 5 Stunden damit verbracht, die Lösung zu finden, und viele Methoden ausprobiert, die zu funktionieren schienen, aber nicht funktionierten. Ich war in genau der gleichen Situation wie Sie und Ihre hervorgehobene Zeile hat gerade den Trick gemacht, lol. Danke!

    – Josh Liu

    15. Dezember 2022 um 5:55 Uhr

1442350cookie-checkNicht erfasster Referenzfehler: jQuery ist nicht definiert

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy