[Résolu] Problème pour charger des fichiers javascript ! (Créer un compte)

  • Statut : non résolu
15 sujets de 16 à 30 (sur un total de 58)
  • Auteur
    Messages
  • #898808
    luciole135
    Participant
    Maître WordPress
    13714 contributions

    Est-ce le bon chemin vers votre fichier JS, apparemment il semble que oui !

    #898809
    luciole135
    Participant
    Maître WordPress
    13714 contributions

    Le codex dit d’utiliser get_template_directory_uri() dans la fonction wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer ); :  » $src
    (string) (optional) URL to the script, e.g. http://example.com/wp-content/themes/my-theme/my-theme-script.js. You should never hardcode URLs to local scripts. To get a proper URL to local scripts, use plugins_url() for plugins and get_template_directory_uri() for themes. Remote scripts can be specified with a protocol-agnostic URL, e.g. //otherdomain.com/js/their-script.js. This parameter is only required when the script with the given $handle has not been already registered using wp_register_script(). See Default Scripts Included and Registered by WordPress.

    Default: false « 
    http://codex.wordpress.org/Function_Reference/wp_enqueue_script

    #898810
    foubouh
    Participant
    Initié WordPress
    47 contributions

    Cela viendrait donc de ce script que je place mal dans mon code ?

    Résumons, j’ai donc mes fichiers js appelés dans functions.php
    Le code css de ma visionneuse installé dans style.css.
    le code html en place dans loop.php

    et ce bout de code ci-dessous, que j’ai placé directement sous le code html.. et toujours rien… No comprendo !

        
    $(function() {

    var Page = (function() {

    var $nav = $( ‘#nav-dots > span’ ),
    slitslider = $( ‘#slider’ ).slitslider( {
    onBeforeChange : function( slide, pos ) {

    $nav.removeClass( ‘nav-dot-current’ );
    $nav.eq( pos ).addClass( ‘nav-dot-current’ );

    }
    } ),

    init = function() {

    initEvents();

    },
    initEvents = function() {

    $nav.each( function( i ) {

    $( this ).on( ‘click’, function( event ) {

    var $dot = $( this );

    if( !slitslider.isActive() ) {

    $nav.removeClass( ‘nav-dot-current’ );
    $dot.addClass( ‘nav-dot-current’ );

    }

    slitslider.jump( i + 1 );
    return false;

    } );

    } );

    };

    return { init : init };

    })();

    Page.init();

    /**
    * Notes:
    *
    * example how to add items:
    */

    /*

    var $items = $(‘<div class="sl-slide sl-slide-color-2"><div class="sl-slide-inner bg-1"><div class="sl-deco"></div><h2>some text</h2><blockquote><p>bla bla</p><cite>Margi Clarke</cite></blockquote></div></div>‘);

    // call the plugin’s add method
    ss.add($items);

    */

    });

    #898811
    luciole135
    Participant
    Maître WordPress
    13714 contributions

    A mon avis les fichiers javascript doivent être placés dans le fichier php qui génère la page en question quite à faire un modèle de page spécial si ces fichiers ne servent que dans une seule page.

    #898812
    foubouh
    Participant
    Initié WordPress
    47 contributions

    Ok j’avais mal lu plus haut, get_template_directory() semble préconisé en local seulement pour intégrer un fichier php.

    Bon en tout cas, mes fichiers .js semblent être correctement appelés, ils apparaissement dans le code source de ma page.

    Je dois dire que je bloque là, je ne comprends pas pourquoi ça ne fonctionne pas… !!! Merci d’avoir pris de ton temps pour m’aider en tout cas.

    #898813
    Guy
    Participant
    Maître WordPress
    14817 contributions

    je reprends en cours de route 🙂

    En résumant, les fichiers js sont chargés mais pas exécutés?

    Ce que tu as affiché comme code javascript jQuery n’est pas en mode no conflict, il faudrait au minimum le corriger avant de tester.

    #898814
    foubouh
    Participant
    Initié WordPress
    47 contributions

    Une petite question, une fois que j’ai déclaré mes fichiers dans functions.php, je dois les appeler dans la page où je veux qu’ils fonctionnent ou sont ils automatiquement actifs ?

    #898815
    Guy
    Participant
    Maître WordPress
    14817 contributions

    nos messages se sont croisés, avais tu pris connaissance de ce que j’avais écrit?

    #898816
    foubouh
    Participant
    Initié WordPress
    47 contributions

    En effet, ils se sont croisés ! Comment faire pour le convertir en code javascript jQuery en mode no conflict ?

    #898817
    foubouh
    Participant
    Initié WordPress
    47 contributions

    Bonjour Guy, je viens de me rendre compte du changement de contributeur !

    Alors pour changer mon code en mode no conflict j’ai remplacé les dollars par jQuery, c’est bien ça ? Je remarque que les fichiers javascript que je tente d’insérer depuis Mathusalem semblent ne pas être en mode no conflict, il faut aussi que je remplace tous les dollars par jQuery ? (fastidieux!)


    jQuery(function() {

    jQuery( ‘#cbp-contentslider’ ).cbpContentSlider();
    speed : 500,
    easing : ‘ease-in-out’,
    current : 0
    });

    #898818
    foubouh
    Participant
    Initié WordPress
    47 contributions

    Voilà j’ai remplacé dans tous mes fichiers JS le $ par jQuery… et ça ne fonctionne toujours pas ! Grrrrr 😉

    #898819
    Guy
    Participant
    Maître WordPress
    14817 contributions

    non non 🙂

    tu peux encapsuler ton code, c’est ce qui est indiqué dans le codex WordPress à la page http://codex.wordpress.org/Function_Reference/wp_enqueue_script

    However, if you really like the short $ instead of jQuery, you can use the following wrapper around your code:

    jQuery(document).ready(function($) {
    // Inside of this function, $() will work as an alias for jQuery()
    // and other libraries also using $ will not be accessible under this shortcut
    });

    That wrapper will cause your code to be executed when the DOM is fully constructed. If, for some reason, you want your code to execute immediately instead of waiting for the DOM ready event, then you can use this wrapper method instead:

    (function($) {
    // Inside of this function, $() will work as an alias for jQuery()
    // and other libraries also using $ will not be accessible under this shortcut
    })(jQuery);

    #898820
    foubouh
    Participant
    Initié WordPress
    47 contributions

    :boulet:

    #898821
    foubouh
    Participant
    Initié WordPress
    47 contributions

    Bon j’ai repris les anciens fichiers js et j’ai inséré :


    jQuery(document).ready(function($) {
    // Inside of this function, $() will work as an alias for jQuery()
    // and other libraries also using $ will not be accessible under this shortcut
    })

    Par contre, deux des fichiers js était « minifié », j’ai tout de même inséré le code avant…

    #898822
    Guy
    Participant
    Maître WordPress
    14817 contributions

    alors la… je ne sais pas du tout mais à mon avis les entourer devrait fonctionné, vérifie tout de même que ces fichiers n’étaient pas déjà en mode noConflict.

15 sujets de 16 à 30 (sur un total de 58)
  • Vous devez être connecté pour répondre à ce sujet.