2010-10-14 3 views
32

J'ai le jQuery bien chargé, j'ai quadruple-vérifié, bien que j'obtienne cette erreur dans FireBug "$ n'est pas une fonction" et mon code ne fonctionne pas.

Voici mon code:

<script type="text/javascript"> 
    $("ol li:nth-child(1)").addClass('olli1'); 
    $("ol li:nth-child(2)").addClass("olli2"); 
    $("ol li:nth-child(3)").addClass("olli3"); 
    $("ol li:nth-child(4)").addClass("olli4"); 
    $("ol li:nth-child(5)").addClass("olli5"); 
    $("ol li:nth-child(6)").addClass("olli6"); 
    $("ol li:nth-child(7)").addClass("olli7"); 
    $("ol li:nth-child(8)").addClass("olli8"); 
    $("ol li:nth-child(9)").addClass("olli9"); 
    $("ol li:nth-child(10)").addClass("olli10"); 
    $("ol li:nth-child(11)").addClass("olli11"); 
    $("ol li:nth-child(12)").addClass("olli12"); 
    $("ol li:nth-child(13)").addClass("olli13"); 
    $("ol li:nth-child(14)").addClass("olli14"); 
    $("ol li:nth-child(15)").addClass("olli15"); 
    $("ol li:nth-child(16)").addClass("olli16"); 
    $("ol li:nth-child(17)").addClass("olli17"); 
    $("ol li:nth-child(18)").addClass("olli18"); 
    $("ol li:nth-child(19)").addClass("olli19"); 
    $("ol li:nth-child(20)").addClass("olli20"); 
</script> 
+0

où est ce code, par rapport à quand vous l oad les scripts jQuery? – RPM1984

+2

Pouvez-vous confirmer dans firebug que jquery est chargé? Pouvez-vous montrer votre «tête»? –

+0

jQuery est chargé dans l'en-tête et ce script dans le pied de page, donc ce n'est pas le problème – Alex

Répondre

95

Dans Wordpress jQuery.noConflict() est appelé sur le fichier jQuery il comprend (faites défiler jusqu'au bas du fichier, il est compris pour jQuery voir ceci), qui signifie $ ne fonctionne pas, mais jQuery fait, et donc votre code devrait ressembler à ceci:

<script type="text/javascript"> 
    jQuery(function($) { 
    for(var i=0; i <= 20; i++) 
     $("ol li:nth-child(" + i + ")").addClass('olli' + i); 
    }); 
</script> 
+0

J'ai remplacé mon code par celui-ci, mais cela ne fonctionne toujours pas. C'est la page http://www.softsailor.com/how-to/46957-how-to-use-greenpois0n-to-jailbreak-iphone-4-3gs-ipad-ipod-touch-ios-4-14- 0.html – Alex

+0

Aussi merci pour l'optimisation :) – Alex

+0

@Alex - Jetez un oeil, noConflict est définitivement votre problème avec '$' ... voir dans votre jQuery inclure à la fin: http://www.softsailor.com /wp-includes/js/jquery/jquery.js?ver=1.4.2, voir ce qui ne va pas maintenant. –

3

Comme RPM1984 fait référence, cela est probablement dû principalement par le fait que votre script chargement avant jQuery est chargé.

+0

jQuery est chargé dans l'en-tête et ce script dans le pied de page, donc ce n'est pas le problème. – Alex

+1

merci, vous avez économisé mon temps –

-3

Il y a deux raisons possibles pour cette erreur:

  1. votre référencement fichier script jquery n'est pas valide
  2. essayer de mettre votre code jquery dans document.ready, comme ceci:

    $ (document) .ready (function() {

    .... votre code ....

    });

acclamations

+0

Le jQuery est inclus automatiquement par Wordpress. J'ai essayé ça et ça ne marche toujours pas. – Alex

+1

Je ne pense pas que l'utilisation ou la non-utilisation de la construction prête pour le document ferait toute différence ici. Aussi, si '$' n'est pas encore défini, comment pouvez-vous appeler $ (document.ready (...)? Désolé, -1 – mkoistinen

+0

c'est bon, je le méritais;) acclamations – Marko

1

qui donne le coup d'erreur lorsque vous avez oublié d'inclure la bibliothèque jQuery dans votre page ou il y a conflit entre bibliothèques - par exemple vous utiliser une autre librairie javascript sur votre page.

Jetez un oeil à ce pour plus d'info:

0

Lorsque jQuery est pas présent, vous obtenez $ is undefined et pas votre message.

Avez-vous vérifié si vous n'aviez pas de variable appelée $ quelque part avant votre code?
Inspectez la valeur de $ dans firebug pour voir ce que c'est.

légèrement hors de question, mais je ne peux pas résister à écrire un code plus court à votre devoir de classe:

var i = 1; 
    $("ol li").each(function(){ 
     $(this).addClass('olli' + i++); 
    }); 
19

Il est vraiment difficile de dire, mais l'un des 9001 annonces sur la page peut être clobber l'objet $. JQuery fournit l'objet global jQuery (est présent sur votre page)

Vous pouvez faire ce qui suit pour « obtenir » $ retour:

jQuery(document).ready(function ($) { 
    // Your code here 
}); 

Si vous pensez que vous avez des problèmes jQuery, s'il vous plaît utiliser la mise au point (non-production) versions de la bibliothèque.

De plus, il n'est probablement pas préférable d'éditer un site en direct comme ça ...

+0

Super! Merci beaucoup! :) – joryl

0
<script type="text/javascript"> 
    $("ol li:nth-child(1)").addClass('olli1'); 
    $("ol li:nth-child(2)").addClass("olli2"); 
    $("ol li:nth-child(3)").addClass("olli3"); 
    $("ol li:nth-child(4)").addClass("olli4"); 
    $("ol li:nth-child(5)").addClass("olli5"); 
    $("ol li:nth-child(6)").addClass("olli6"); 
    $("ol li:nth-child(7)").addClass("olli7"); 
    $("ol li:nth-child(8)").addClass("olli8"); 
    $("ol li:nth-child(9)").addClass("olli9"); 
    $("ol li:nth-child(10)").addClass("olli10"); 
    $("ol li:nth-child(11)").addClass("olli11"); 
    $("ol li:nth-child(12)").addClass("olli12"); 
    $("ol li:nth-child(13)").addClass("olli13"); 
    $("ol li:nth-child(14)").addClass("olli14"); 
    $("ol li:nth-child(15)").addClass("olli15"); 
    $("ol li:nth-child(16)").addClass("olli16"); 
    $("ol li:nth-child(17)").addClass("olli17"); 
    $("ol li:nth-child(18)").addClass("olli18"); 
    $("ol li:nth-child(19)").addClass("olli19"); 
    $("ol li:nth-child(20)").addClass("olli20"); 
</script> 

changement à ce

<script type="text/javascript"> 
     jQuery(document).ready(function ($) { 
     $("ol li:nth-child(1)").addClass('olli1'); 
     $("ol li:nth-child(2)").addClass("olli2"); 
     $("ol li:nth-child(3)").addClass("olli3"); 
     $("ol li:nth-child(4)").addClass("olli4"); 
     $("ol li:nth-child(5)").addClass("olli5"); 
     $("ol li:nth-child(6)").addClass("olli6"); 
     $("ol li:nth-child(7)").addClass("olli7"); 
     $("ol li:nth-child(8)").addClass("olli8"); 
     $("ol li:nth-child(9)").addClass("olli9"); 
     $("ol li:nth-child(10)").addClass("olli10"); 
     $("ol li:nth-child(11)").addClass("olli11"); 
     $("ol li:nth-child(12)").addClass("olli12"); 
     $("ol li:nth-child(13)").addClass("olli13"); 
     $("ol li:nth-child(14)").addClass("olli14"); 
     $("ol li:nth-child(15)").addClass("olli15"); 
     $("ol li:nth-child(16)").addClass("olli16"); 
     $("ol li:nth-child(17)").addClass("olli17"); 
     $("ol li:nth-child(18)").addClass("olli18"); 
     $("ol li:nth-child(19)").addClass("olli19"); 
     $("ol li:nth-child(20)").addClass("olli20"); 
    }); 
    </script> 
Questions connexes