2010-10-20 20 views
10

Utilisation de jQuery 1.4.2 à partir du code hébergé par Google.

Y a-t-il une raison pour laquelle le javascript suivant ne déclenche pas toutes les 3 fonctions document.ready lorsque le document est prêt?

La première fonction $(document).ready(), ce qui rend les en-têtes, et la seconde, ce qui donne une zone d'alerte « Foo » déclenchée, mais les suivantes dans les nouveaux <script> blocs ne sont pas déclenché,

<script type="text/javascript"> 
    $(document).ready(function() { 
     Cufon.replace('h1'); // Works without a selector engine 
     Cufon.replace('h2'); // Works without a selector engine 
     Cufon.replace('h3'); // Works without a selector engine 
     Cufon.now(); 
    }); 
    $(document).ready(function() { alert("Number Foo"); }); 
</script> 

// html tags 

<script type="text/javascript"> 
    $(document).ready(function() { alert("Number One"); }); 
    $(document).ready(function() { alert("Number Two"); }); 
</script> 

Ce sont dans séparés webparts, hébergés sur la même page dans SharePoint2010

+4

Je serais un peu méfiant de définir une fonction de document prêt à l'intérieur d'une autre fonction prête pour le document. – Phil

+1

Désolé, c'était une faute de frappe. Post mis à jour. – Darbio

+3

La dernière fonction $ (document) .ready n'est pas correctement terminée. '});' manquant –

Répondre

22

je peux penser à trois choses médico-légales pour essayer, tout de suite:

  1. essayer avec non hébergé par Google bibliothèques.
  2. commenter le Cufon appels - Je crois que Cufon fait quelques trucs fous pour télécharger des ressources supplémentaires , oui? Cela peut être interférant avec .
  3. sous $(window).load() pour un ou plusieurs de vos $(document).ready() defs de rappel. Ils ont différents critères de tir - $(window).load() attend tout à charger, prétendument - mais la substitution peut être révélant.

Bien sûr, console.log() et alert() seront vos en-leu-de-debugger-breakpoint meilleurs amis dans ce cas.

+1

Cufon était le coupable ... Supprimé! – Darbio

+4

Le conseil $ (window) .load() m'a aidé! – YeahStu

+1

Si $ (window) .load() fonctionne mais $ (document) .ready() non, qu'est-ce que cela signifie? – CharlieMezak

1

vous manque une accolade fermante et entre parenthèses dans la deuxième balise de script

+0

Non, ce n'est pas le problème. – Darbio

+0

Avez-vous tapé votre code incorrectement depuis le début ou l'avez-vous corrigé après les réponses? –

+0

Je l'ai changé juste avant votre première réponse dans les commentaires de la question. – Darbio

1

Il vous manque un }); à la fin de la dernière ($ docum ent) .ready

Une fois que vous corriger cela, il devrait fonctionner

EDIT: Puisque vous dites maintenant que chaque balise de script est dans une partie Web distincte, je crois que le problème lui-même est pas dans les scripts. Quelque chose d'autre dans votre page gâche votre code.

+0

Ce n'est pas le problème, car j'ai réparé la source et elle ne fonctionne toujours pas. – Darbio