2009-09-02 8 views
16

J'adore le nouvel événement live de jQuery 1.3. La question que j'ai est la performance de cet événement. Je connais les avantages d'utiliser live over click/bind ('click') mais y a-t-il un hit de performance pour l'utiliser sur click/bind ('click')?Différence de performance entre .live de jQuery ('click', fn) et .click (fn)

Si non, pourquoi utiliseriez-vous un clic ou un lien ('clic')?

+0

Dup: http://stackoverflow.com/questions/748076/using-live-benefits-similar-to-bind –

+0

Je pense qu'ils sont à différentes questions que celui-ci se rapporte uniquement à des différences de performance et non général. – MacAnthony

+0

@MacAnthony: lire la réponse acceptée à cette question, il se penche sur les caractéristiques de performance de 'live' et' bind'. C'est pourquoi j'ai Dup'd ceci: il a déjà été répondu. –

Répondre

12

Si non, pourquoi utiliseriez-vous cliquez sur ou lier ('click')?

Parce que $.live() a quelques inconvénients importants

  • événements en direct ne bulle pas de la manière traditionnelle et ne peuvent pas être a cessé d'utiliser stopPropagation (Cela a changé en jquery 1.4.4) ou stopImmediatePropagation. Par exemple, prend le cas de deux événements de clic - un lié à "li" et un autre "li a". Si un clic se produit sur l'ancre interne , les deux événements seront déclenchés. C'est parce que $ ("li"). Bind ("click", fn); est lié vous dites réellement "Chaque fois qu'un événement de clic se produit sur un élément LI - ou à l'intérieur d'un élément LI - déclencher cet événement de clic ." Pour arrêter le traitement pour un événement en direct, fn doit retourner false.
  • Les événements en direct ne fonctionnent actuellement que lorsqu'ils sont utilisés avec un sélecteur. Pour par exemple, cela fonctionnerait: $ ("li a"). Live (...) mais ce ne serait pas: $ ("a", someElement) .live (...) et ne serait pas ceci: $ ("a"). Parent(). Live (...).
+0

Aussi certains événements ne peuvent pas être capturés par .live() – MacAnthony

+6

live() supporte stopProgation depuis 1.4.4 – Chris

+0

ceux-ci ne semblent pas très significatifs ... – Kevin

2

Voir this. En ce qui concerne la raison pour laquelle vous utiliseriez un clic ou une liaison au lieu de live, la réponse est que vous n'avez pas besoin des fonctionnalités supplémentaires.

Questions connexes