- Statut : non résolu
- Ce sujet contient 57 réponses, 3 participants et a été mis à jour pour la dernière fois par
foubouh, le il y a 10 années et 5 mois.
-
AuteurMessages
-
17 juin 2013 à 9 h 54 min #898808
Est-ce le bon chemin vers votre fichier JS, apparemment il semble que oui !
17 juin 2013 à 9 h 59 min #898809Le 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_script17 juin 2013 à 10 h 00 min #898810Cela 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.phpet 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);
*/
});
17 juin 2013 à 10 h 07 min #898811A 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.
17 juin 2013 à 10 h 09 min #898812Ok 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.
17 juin 2013 à 10 h 19 min #898813je 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.
17 juin 2013 à 10 h 19 min #898814Une 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 ?
17 juin 2013 à 10 h 20 min #898815nos messages se sont croisés, avais tu pris connaissance de ce que j’avais écrit?
17 juin 2013 à 10 h 25 min #898816En effet, ils se sont croisés ! Comment faire pour le convertir en code javascript jQuery en mode no conflict ?
17 juin 2013 à 10 h 33 min #898817Bonjour 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
});
17 juin 2013 à 10 h 49 min #898818Voilà j’ai remplacé dans tous mes fichiers JS le $ par jQuery… et ça ne fonctionne toujours pas ! Grrrrr 😉
17 juin 2013 à 10 h 51 min #898819non 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);17 juin 2013 à 10 h 52 min #898820:boulet:
17 juin 2013 à 10 h 56 min #898821Bon 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…
17 juin 2013 à 10 h 58 min #898822alors 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.
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.