2013-03-14 17 views

Odpowiedz

44

cloneNode() nie kopiuje detektorów zdarzeń. W rzeczywistości, nie ma mowy o dotarcie do słuchaczy zdarzeń poprzez DOM raz zostały one związane, więc opcje są:

  • Dodaj wszystkie detektory zdarzeń ręcznie do sklonowanego węzła
  • byłaby kodu do użyj delegowania zdarzeń, aby wszystkie programy obsługi zdarzeń były dołączone do węzła zawierającego zarówno oryginalny, jak i klonowy. Użyj funkcji otoki wokół Node.addEventListener(), aby śledzić słuchaczy dodanych do każdego węzła. W ten sposób metoda jQuery na przykład clone() jest w stanie skopiować węzeł za pomocą swoich detektorów zdarzeń.
+4

Nie nienawidzisz, gdy złe nawyki (inline javascript, takie jak 'onclick') są bardziej przydatne niż odpowiednia alternatywa wanilii? Westchnienie ... – JeromeJ

+0

Ludzie ogólnie używają złych praktyk, ponieważ są bardziej przydatni, nie czyni ich jednak dobrym. – GdC

Powiązane problemy