2009-09-02 17 views
16

Uwielbiam nowe wydarzenie na żywo w jQuery 1.3. Pytanie, które mam, to wykonanie tego wydarzenia. Znam zalety korzystania z funkcji "na żywo" w stosunku do kliknięcia/kliknięcia ("kliknięcie"), ale czy istnieje skuteczność w zakresie korzystania z niej w przypadku kliknięcia/łączenia ("kliknięcie")?Różnica w wydajności między funkcjami jquery .live ("kliknięcie", fn) i .click (fn)

Jeśli nie, dlaczego miałbyś użyć kliknięcia lub powiązania ("kliknij")?

+0

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

+0

myślę, że są różne pytania jak ten odnosi się wyłącznie do różnic w wydajności i nie generał. – MacAnthony

+0

@MacAnthony: przeczytaj zaakceptowaną odpowiedź na to pytanie, zagłębia się w charakterystykę wydajności "live" i "bind". Właśnie dlatego dodałem: już zostało udzielone. –

Odpowiedz

12

Jeśli nie, dlaczego miałbyś kiedykolwiek użyć kliknięcia lub powiązania ("kliknięcie")?

Ponieważ $.live() ma kilka istotnych wad

  • Żywe zdarzenia nie bubble w sposób tradycyjny i nie może być zatrzymany przy użyciu stopPropagation (Zmieniło w jQuery 1.4.4) lub stopImmediatePropagation. Na przykład, ma miejsce w przypadku zdarzeń z dwoma kliknięciami - , które są powiązane z "li" i innym "li a". Jeśli kliknięcie pojawi się na wewnętrznej kotwicy , zostaną uruchomione zdarzenia BOTH. Dzieje się tak, ponieważ gdy $ ("li"). Bind ("kliknij", fn); jest związany: mówisz "Za każdym razem, gdy zdarzy się jedno kliknięcie w przypadku elementu LI - lub wewnątrz elementu LI - wywołaj zdarzenie kliknięcia ". Aby przerwać przetwarzanie na żywo na żywo, fn musi return false.
  • Wydarzenia na żywo aktualnie działają tylko w połączeniu z selektorem. Dla przykładu: , to działałoby: $ ("li a"). Live (...) ale to by nie: $ ("a", someElement) .live (...) i nie byłoby to: $ ("a"). Parent(). Live (...).
+0

Również niektóre zdarzenia nie mogą być przechwytywane przez .live() – MacAnthony

+6

live() obsługuje stopProgation od 1.4.4 – Chris

+0

te nie wydają się bardzo znaczące ... – Kevin

2

Zobacz this.

Jeśli chodzi o to, dlaczego kiedykolwiek używałeś kliknięcia lub bindowania zamiast live, odpowiedź brzmi, ponieważ nie potrzebujesz dodatkowej funkcjonalności.

Powiązane problemy