jQuery: try catch { appel de la fonction } ne fonctionne pas?

Je vais avoir beaucoup de JavaScript sur ma page et je suis en utilisant typekit. Afin de rendre ma page fonctionne correctement (grille et des trucs), je suis en utilisant la nouvelle événements de polices typekit.

C'est tout simplement un try et catch déclaration qui vérifie si les polices chargées ou non. Cependant, quelque part, je ne suis pas à l'obtenir. Je vais appeler la setGrid() fonction si les polices typekit sont chargés, mais par exemple, l'iPad ou l'iPhone ne supporte pas encore et donc ma page ne s'affiche lorsque je n'appelez pas la setGrid() fonction.

De toute façon, je veux appeler la fonction de l'erreur de déclaration, ainsi, si la page est appelée sur l'iPhone, la page fonctionne sans webfonts.

try {
 Typekit.load({
  loading: function() { },
  active: function() { setGrid(); },
  inactive: function() { }
 })
} catch(e) {
 alert('error'); //works
 setGrid(); //doesn't get called
}

Cependant, la alert œuvres, la setGrid() fonction n'est pas appelée.
Des idées?

edit: la fonction ressemble à ça:

var setGrid = function () {
 $('#header, #footer').fadeIn(500);
 return $("#grid").vgrid({
  easeing: "easeOutQuint",
  time: 800,
  delay: 60
 });
};
Quelles preuves avez-vous que setGrid() n'est pas appelé? Peut-être que la fonction est trop lancer une exception? (Aussi, vous avez oublié un point-virgule après la alert(), qui n'affectent pas l'exécution. Mais c'est le style pauvres.)
Cela ne va pas résoudre votre problème, mais: Omission des points-virgules est considéré comme une mauvaise pratique, car il peut casser beaucoup de choses. Vous devez toujours mettre en.
Essayez d'alerte(setGrid); au lieu de alert('erreur') - que voyez-vous maintenant?
undefined? le setGrid fonction est deux lignes en dessous.
voir ma réponse alors, qui devrait résoudre votre problème.

OriginalL'auteur matt | 2010-11-20