web-dev-qa-db-fra.com

la fonction du plugin jQuery n'est pas une fonction

J'ai un problème que je n'ai jamais vu auparavant. Dans une toute nouvelle installation WordPress, j'ai téléchargé un thème sur lequel j'avais déjà travaillé pour le restaurant d'un ami: CornerPocketPub.com

Le problème, comme vous pouvez le constater, est que les plugins jquery pour la page d’accueil (.cycle) et la page de menu (.easyAccordion) ne sont pas reconnus en tant que fonctions dans Firebug. Maintenant, j'ai cherché partout des réponses, mais je n'arrive pas à trouver une solution qui fonctionne pour moi.

S'il vous plaît aider, et merci d'avance pour l'aide et des conseils!

2
user6674

Je dis toujours que c'est un jQuery issue; Cependant, il est important de noter que WordPress requiert le mode sans conflit pour jQuery .

Du Codex: jQuery noConflict Wrappers

La bibliothèque jQuery fournie avec WordPress est définie sur le mode noConflict() (voir wp-includes/js/jquery/jquery.js). Ceci permet d'éviter les problèmes de compatibilité avec d'autres bibliothèques JavaScript que WordPress peut associer.

En mode noConflict(), le raccourci global $ pour jQuery n'est pas disponible. Vous pouvez donc toujours utiliser:

jQuery(document).ready(function(){
    jQuery(#somefunction) ...
});

mais ce qui suit générera une erreur ou utilisera le raccourci $ attribué par une autre bibliothèque.

$(document).ready(function(){
     $(#somefunction) ...
});

Toutefois, si vous aimez vraiment le $ court au lieu de jQuery, vous pouvez utiliser le wrapper suivant pour votre 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
});

Ce wrapper entraînera l'exécution de votre code lorsque le DOM sera entièrement construit. Si, pour une raison quelconque, vous souhaitez que votre code soit exécuté immédiatement au lieu d'attendre l'événement DOM ready, vous pouvez utiliser cette méthode de wrapper à la place:

(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);

Sinon, vous pouvez toujours réaffecter jQuery à un autre raccourci de votre choix et laisser le $ raccourci à d'autres bibliothèques:

var $j = jQuery;
5
Chip Bennett