2009-11-14 7 views
0

Avoir un peu de mal à utiliser les plugins jQuery (Superfish, jQuery UI, etc.) en utilisant Wordpress. Tout fonctionne bien dans mon site non-Wordpress, mais Wordpress semble entrer en conflit avec JQuery. Il doit y avoir un moyen de contourner cela.Utiliser les plugins jQuery avec Wordpress

En outre, j'utilise Carrington Framework, si cela fait une différence.

Dans l'inspecteur web de Safari, je reçois ces erreurs:

ReferenceError: Can't find variable: jQuery 
ReferenceError: Can't find variable: $ 
+0

Comment intégrez-vous jQuery dans vos pages WordPress? Le moyen le plus sûr est probablement d'utiliser [wp_enqueue_script()] (http://digwp.com/2009/06/including-jquery-in-wordpress-the-right-way/), qui chargera (si nécessaire) la propre version de WordPress. copie de jQuery. De même, comment incluez-vous le code qui vous pose problème? Est-ce que c'est juste intégré sur la page, ou est-ce dans un fichier séparé? –

Répondre

2

Wordpress et jQuery ne serait pas en conflit les uns avec les autres. Wordpress est sur le serveur, jQuery est sur le client et en dehors de traiter avec le HTML retourné par Wordpress les deux n'ont pas vraiment beaucoup à faire les uns avec les autres. Vous obtiendrez cette erreur si le javascript qui définit l'objet jQuery n'a pas été correctement chargé/analysé par le navigateur. Trois solutions de dépannage:

  1. Vérifiez et assurez-vous que votre client effectue la demande pour le fichier jQuery javascript. Si ce n'est pas le cas, la balise de script demandant le fichier peut ne pas être incluse correctement dans votre page.
  2. Si la demande est en cours, assurez-vous qu'elle est réussie. Si la réponse est un code 404 ou une autre erreur, corrigez tout ce qui le cause (mauvaise URL, permissions incorrectes, ect.)
  3. J'ai remarqué que lorsque vous utilisez la version minifiée de jQuery, le navigateur émet parfois une erreur quand essayer d'analyser le code, conduisant à l'erreur de référence que vous rencontrez lorsque vous essayez d'utiliser la fonction jQuery plus tard dans le code. Si vous utilisez la version réduite de jQuery, essayez de passer à la version non compacte et voyez si cela résout votre problème.
+0

Pas nécessairement vrai. jQuery est inclus dans les pages d'administration de WordPress. En outre, certains thèmes peuvent inclure des bibliothèques JS comme Prototype qui seraient en conflit. – ceejayoz

+0

jQuery se charge bien, comme tous les plugins, et le code que j'ai écrit. J'essaierai de ne pas utiliser la version minifiée de jquery ui. – Tim

+0

Vous dites que tout se charge bien ... quand obtenez-vous l'erreur alors? Je voudrais que vous obteniez l'erreur quand le navigateur essaye d'exécuter la fonction $ (window) .load() '. Je pense que c'est la troisième chose, et il y a quelque chose à propos de la jQuery minifiée que Safari n'aime pas. –

1

Il suffit de mettre tous vos js dans la section

<?php 
    wp_head(); 
?> 

. Si vous avez des problèmes dans des fichiers individuels, toute la ligne:

var $j = jQuery.noConflict(); 

vers le haut.

+0

Si 'jQuery.noConflict()' change quelque chose, cela signifie que vous avez un autre objet dans le DOM essayant d'utiliser le nom '$'. Utilisez-vous un autre framework javascript sur votre page? –

Questions connexes