jQuery ist in WordPress nicht definiert, aber mein Skript wird ordnungsgemäß in die Warteschlange gestellt

Lesezeit: 4 Minuten

jQuery ist in Wordpress nicht definiert aber mein Skript wird
Nikatoby

Ich versuche, eine separate Javascript-Datei mobile-menu.js in mein WordPress-Design zu laden. Wenn ich auf die Konsole schaue, sagt sie: “jQuery ist nicht definiert.” Ich weiß jedoch, dass ich meine Skriptdateien korrekt in die Warteschlange gestellt habe. Irgendwelche Ideen?

HTML-Datei:

<a href="#" id="menu-icon"></a> <!--this line wasn't here originally-->
    <div id="switchmenu"><!--switchmenu begin-->
        <?php wp_nav_menu( array( 'theme_location' => 'primary' ) ); ?>
    </div><!--switchmenu end-->

functions.php-Datei:

function lapetitefrog_scripts() {
    wp_enqueue_style( 'lapetitefrog-style', get_stylesheet_uri() );
    wp_enqueue_script( 'lapetitefrog-mobile-menu', get_template_directory_uri() . '/js/mobile-menu.js', array(), '1.0', true );
}
add_action( 'wp_enqueue_scripts', 'lapetitefrog_scripts' );

mobile-menu.js-Datei:

 jQuery(document).ready(function($) {
    $('#menu-icon').click(function() {
            $('#switchmenu').slideToggle("fast");
    });
});

  • Versuche dies : jQuery(document).ready(function() { jQuery('#menu-icon').click(function() { jQuery('#switchmenu').slideToggle("fast"); }); });

    – Rohil_PHPBeginner

    31. Januar 2015 um 4:23 Uhr


  • Überprüfen Sie, ob auf derselben Seite zwei JQuery-Dateien enthalten sind.

    – Vikas Arora

    31. Januar 2015 um 4:25 Uhr

jQuery ist in Wordpress nicht definiert aber mein Skript wird
Gavin Simpson

Addieren wp_enqueue_script('jquery'); bevor Sie Ihre Skripte einreihen.

  • Das hat funktioniert! Ich danke dir sehr! Ich finde dieses Problem sehr seltsam, weil ich dieses Stückchen Code noch nie zuvor zu meinen Skripten hinzufügen musste … würden Sie zufällig wissen, warum es dieses Mal notwendig ist? Danke!

    – Nikatoby

    31. Januar 2015 um 5:43 Uhr

  • Ähm, es ist nur so, wie ich verstehe, wie es funktioniert, wenn ich dem WordPress-Codex und den Support-Foren folge, also habe ich es von Anfang an in meine Plugins und Themen aufgenommen, ohne es jemals in Frage zu stellen. Es gibt noch ein paar andere, z wp_print_scripts('editor'); wenn Sie wp_edit verwenden möchten … Ich füge sie einfach standardmäßig hinzu, je nachdem, welche Code-Snippets ich für welchen Zweck habe. Tut mir leid, dass ich nicht näher darauf eingehen kann.

    – Gavin Simpson

    31. Januar 2015 um 5:51 Uhr


  • @GavinSimpson Wo ist die Datei functions.php? In den “wp-content/themes” richtig? Wenn ja, welche sollte ich ändern? Es gibt 2 functions.php, eine im normalen Ordner und eine in einem -child-Ordner.

    – Adelriosantiago

    24. Oktober 2015 um 2:53 Uhr


  • Verwenden Sie das in dem von Ihnen verwendeten Themenordner. Wenn Sie also das untergeordnete Thema verwenden, bearbeiten Sie das in themes/mytheme-child.

    – Gavin Simpson

    24. Oktober 2015 um 4:40 Uhr


  • Diese Antwort hat mir Stunden Arbeit erspart. Ich danke dir sehr.

    – m4heshd

    8. Juni 2017 um 23:46 Uhr

Stellen Sie zunächst sicher, dass die jquery-Datei im Header enthalten ist und Ihre Datei jQuery erfordert

wp_enqueue_script( 
        'lapetitefrog-mobile-menu', 
        get_template_directory_uri() . '/js/mobile-menu.js', 
        array('jquery'), 
        '1.0', 
        true 
);

Zweitens sollten Sie Ihre Javascript-Datei wie folgt starten:

(function($) {
    $(document).ready(function() {
        .......
    });
})(jQuery);

ODER

// Use jQuery in place of $
jQuery(document).ready(function() {
    .....
});

  • Das Hinzufügen von ‘jquery’ in array() scheint das undefinierte jQuery-Problem beseitigt zu haben. Aber wenn ich jetzt das Netzpanel überprüfe, wird nicht einmal die Datei mobile-menu.js angezeigt. Was könnte falsch sein?

    – Nikatoby

    31. Januar 2015 um 4:44 Uhr

  • @nicatoby Check in der Fußzeile, du definierst die Option true in wp_enqueue_script()

    – jogesh_pi

    31. Januar 2015 um 5:02 Uhr

  • Nein, es ist nicht da.

    – Nikatoby

    31. Januar 2015 um 5:07 Uhr

1647307147 318 jQuery ist in Wordpress nicht definiert aber mein Skript wird
Faisal Naser

Du kannst es versuchen:

Stellen Sie zuerst Jquery in die Warteschlange.

wp_enqueue_script('jquery'); 

und dann das letztere Skript mit einreihen JQuery-Abhängigkeit im 3. Argument dh array('jquery') das vergessen die meisten.

wp_enqueue_script( 'lapetitefrog-mobile-menu', get_template_directory_uri() . '/js/mobile-menu.js', array('jquery'), '1.0', true );

  • Ich erstelle mein eigenes Plugin und erhalte diesen Fehler beim Laden meiner benutzerdefinierten jquery, weil ich denke, dass die jquery-Bibliothek nicht auf der Ressourcenseite geladen ist und diese Lösung mir nicht geholfen hat! Eigentlich muss ich jquery im Admin-Panel laden! kennst du eine andere lösung?

    – Nadia

    6. Dezember 2020 um 17:17 Uhr

WordPress wird standardmäßig mit jQuery ausgeliefert

// Adds jQuery
    add_action('init', 'childoftwentyeleven_down');

        function childoftwentyeleven_down() {

          // register your script location, dependencies and version
                wp_register_script('down',
                    get_stylesheet_directory_uri() . '/js/down.js',
                    array('jquery') );
           // enqueue the script
           wp_enqueue_script('down');

        }

Der Fehler jQuery is not defined kann auch mit jQuery-Code erscheinen, der in Ihre Vorlagenteile eingebettet ist.

Dies geschieht, wenn jQuery zur hinzugefügt wird Fusszeile der Seite, während das eingebettete Skript versucht, in der auszuführen Mitte der Seite.

Wenn dies der Fall ist, müssen Sie jQuery im Header mit laden wp_enqueue_script(). Der letzte Parameter muss also sein falsch Hier:

wp_enqueue_script( 'my-jquery', get_template_directory_uri() . '/js/jquery.js', array(), time(), false );

Jetzt wird der Code in der richtigen Reihenfolge ausgeführt und jQuery wird definiert.

Eine andere Lösung wäre, das eingebettete Skript in eine Javascript-Datei zu verschieben, die ebenfalls hinzugefügt wird wp_enqueue_script() zur Fußzeile der Seite. Es liegt an dir.

1003550cookie-checkjQuery ist in WordPress nicht definiert, aber mein Skript wird ordnungsgemäß in die Warteschlange gestellt

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

Privacy policy