web-dev-qa-db-fra.com

Pas sûr si mettre en file d'attente les scripts js correctement

Lorsque je mets ce code juste au-dessus de la fermeture de la balise body, cela fonctionne, mais lorsque je tente de le mettre en file d'attente, il se brise. Je pense que jQuery n'est peut-être pas appelée? L'extrait de code est de ici

FONCTIONS.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

Sur votre fichier SCROLL.JS, ajoutez la ligne avant toute autre chose,

(function($){

Et après tout le reste

})(jQuery);

Ce bloc chargera votre code après le chargement de jQuery et évitera les erreurs.

1
Shazzad