web-dev-qa-db-de.com

Ich bin mir nicht sicher, ob ich JS-Skripte richtig einreihen soll

Wenn ich diesen Code direkt über das Schließen meines Body-Tags setze, funktioniert er, aber wenn ich versuche, ihn in eine Warteschlange zu setzen, bricht er. Ich denke, vielleicht wird jQuery nicht gerufen? Das Snippet ist von hier

FUNCTIONS.PHP

add_action( 'wp_enqueue_scripts', 'scroll_port' );

function scroll_port() {
    wp_register_script( 'scrolling', get_template_directory_uri() . '/js/scroll.js', array('jquery'), '', true );

    wp_enqueue_script('scrolling');
}

SCROLL.JS

$('a[href*=#]:not([href=#])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') 
    || location.hostname == this.hostname) {

    var target = $(this.hash);
    target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
       if (target.length) {
         $('html,body').animate({
             scrollTop: target.offset().top
        }, 1000);
        return false;
    }
}
});`
1
vytfla

Fügen Sie in Ihrer SCROLL.JS-Datei die Zeile vor allem anderen hinzu,

(function($){

Und nach allem anderen

})(jQuery);

Dieser Block lädt den Code nach dem Laden von jQuery und vermeidet die Fehler.

1
Shazzad