Alternative à jQuery .toggle() méthode qui prend en charge eventData?

La jQuery documentation pour la .toggle() méthode unis:

L' .toggle() la méthode est fournie pour votre commodité. Il est relativement simple à mettre en œuvre le même comportement à la main, et cela peut être nécessaire si les hypothèses .toggle() prouver limitant.

Les hypothèses .toggle ont prouvé la limitation de ma tâche en cours, mais la documentation n'est pas élaborer sur la façon de mettre en œuvre le même comportement. J'ai besoin de passer eventData au gestionnaire de fonctions prévues pour toggle(), mais il semble que seule .bind() soutiennent, pas .toggle().

Mon premier réflexe est d'utiliser un indicateur global d'une seule fonction de gestionnaire de magasin de la cliquez sur état. En d'autres termes, plutôt que d':

$('a').toggle(function() {
  alert('odd number of clicks');
}, function() {
  alert('even number of clicks');
});

ce faire:

var clicks = true;
$('a').click(function() {
  if (clicks) {
    alert('odd number of clicks');
    clicks = false;
  } else {
    alert('even number of clicks');
    clicks = true;
  }
});

Je n'ai pas testé le dernier, mais je soupçonne que cela fonctionnerait. Est-ce la meilleure façon de faire quelque chose comme cela, ou est-il une meilleure façon que je suis absent?

Merci!

Je ne comprends pas votre question. Qu'essayez-vous de faire?
Je ne peux pas utiliser .toggle (), car il ne semble pas en charge la transmission de eventData à la fonction de gestionnaire. Je suis à la recherche de la meilleure solution alternative qui prend en charge eventData, qui (à ma connaissance) est basé sur la .méthode bind (). En d'autres termes, où le jQuery documention dit "c'est relativement simple à mettre en œuvre le même comportement à la main," je suis en train de le faire.

OriginalL'auteur Bungle | 2010-03-17