2010-10-19 6 views
3

Quelle est la différence entre $ (".tout"). Click() et $ (" .anything "). bind (cliquez)

$(".anything").click(function() { 

}); 

$(".anything").bind('click', function() { 

}); 
+0

'.bind ("clic", ...)' doit être une chaîne. – jwueller

+0

Modifié pour un problème de chaîne. –

+0

@elusive ohh vous avez raison. – faressoft

Répondre

6

Le premier est un raccourci de la seconde. La deuxième est en fait faux, click aurait dû être cité. En outre, dans la seconde vous avez l'avantage supplémentaire que vous pouvez lier la même fonction à plusieurs événements, chacun étant séparé par un espace. Par exemple.

$(".anything").bind("click keypress blur", function() { 

}); 
8

Rien, click(function() { }) est juste un raccourci pour bind("click", function() { }).

De la documentation jQuery:

La bibliothèque jQuery fournit des méthodes de raccourci pour lier les types d'événements standard, tels que .cliquez() pour .bind (clic).

Vous pouvez en savoir plus sur bind()here.

4

Dans ce cas précis, absolument rien.

Cependant:

A) Si vous donnez .click() aucun argument, il déclenche l'événement au lieu de définir le gestionnaire.

B) ne .bind() vous permet d'utiliser la voie « un espace de nommage » de l'inscription des gestionnaires:

$(whatever).bind('click.myEvent', function (e) { ... }); 
$(whatever).unbind('click.myEvent'); // Removes just that handler 
2

Voir ce poste, qui pointe vers la source JQuery pour montrer que .cliquez (fn) appelle simplement .bind ('click', fn): jQuery: $().click(fn) vs. $().bind('click',fn);

J'utilise généralement ce dernier si:

  • Je veux lier plusieurs choses, par exemple .bind (clic focus ', fn)
  • Juste pour maintenir la convention si je l'appelle délier plus tard, i.e. .:
var fn = function() { alert('foo'); } 
$('#foo').bind('click', fn); 

... 

$('#foo').unbind('click', fn); 
Questions connexes