Pierwszy przykład ilustruje delegowanie zdarzeń . Procedura obsługi zdarzenia jest powiązana z elementem znajdującym się wyżej w drzewie DOM (w tym przypadku document
) i zostanie wykonana, gdy zdarzenie osiągnie ten element i pochodzi z elementu pasującego do selektora.
Jest to możliwe, ponieważ większość zdarzeń DOM wypływa w górę drzewa z punktu początkowego. Jeśli klikniesz #id
element, zostanie wygenerowane zdarzenie kliknięcia, które przejdzie przez wszystkie elementy przodków ( uwaga na marginesie: tak naprawdę wcześniej jest faza, zwana `` fazą przechwytywania '', kiedy zdarzenie schodzi w docelowy ). Możesz uchwycić wydarzenie na dowolnym z tych przodków.
Drugi przykład wiąże procedurę obsługi zdarzeń bezpośrednio z elementem. Zdarzenie nadal będzie bąbelkowe (chyba że zapobiegniesz temu w module obsługi), ale ponieważ moduł obsługi jest powiązany z celem, nie zobaczysz efektów tego procesu.
Delegując procedurę obsługi zdarzeń, można zapewnić, że zostanie ona wykonana dla elementów, które nie istniały w DOM w momencie wiązania. Jeśli Twój #id
element został utworzony po drugim przykładzie, program obsługi nigdy nie zostałby wykonany. Powiązanie z elementem, o którym wiesz, że znajduje się na pewno w DOM w momencie wykonywania, daje pewność, że procedura obsługi będzie faktycznie do czegoś dołączona i będzie mogła zostać wykonana w razie potrzeby później.