CodeGym /Kursy /Frontend SELF PL /Praca z wydarzeniami

Praca z wydarzeniami

Frontend SELF PL
Poziom 41 , Lekcja 4
Dostępny

5.1 Podstawy pracy z wydarzeniami

Wydarzenia w JavaScript pozwalają na interakcję z użytkownikiem i reagowanie na jego działania, takie jak kliknięcia myszą, naciskanie klawiszy, zmiany w formularzach i wiele innych. Zrozumienie, jak dodawać i usuwać obsługiwacze wydarzeń to ważna część tworzenia interaktywnych aplikacji webowych.

Co to są wydarzenia?

Wydarzenie to sygnał od przeglądarki, który informuje, że coś się wydarzyło. Na przykład, użytkownik kliknął na przycisk lub strona została załadowana. Wydarzenia pozwalają wykonywać określone działania w odpowiedzi na te sygnały.

Typy wydarzeń

Istnieje wiele typów wydarzeń. Niektóre z najczęściej używanych to:

  • Mysz: click, dblclick, mouseover, mouseout, mousedown, mouseup, mousemove
  • Klawiatura: keydown, keyup, keypress
  • Formularz: submit, change, focus, blur
  • Dokument/Okno: load, resize, scroll, unload

Obsługiwacze wydarzeń

Obsługiwacze wydarzeń (lub listenerzy wydarzeń) są funkcjami, które są wywoływane w odpowiedzi na określone wydarzenie. "Nasłuchują" określonych wydarzeń i uruchamiają się, gdy te wydarzenia zachodzą.

5.2 Dodawanie obsługiwaczy wydarzeń

Dodawanie obsługiwaczy wydarzeń za pomocą addEventListener

Metoda addEventListener pozwala dodawać obsługiwacze wydarzeń do elementów. Zapewnia większą elastyczność i kontrolę w porównaniu z tradycyjnymi metodami dodawania wydarzeń, takimi jak użycie atrybutów HTML (onclick, onchange itd.).

Składnia:

    
      element.addEventListener(event, handler, options);
    
  

Gdzie:

  • element: element, do którego dodawany jest obsługiwacz wydarzeń
  • event: typ wydarzenia, na które należy reagować (na przykład, 'click', 'input', 'keydown')
  • handler: funkcja, która zostanie wywołana w przypadku wystąpienia wydarzenia
  • options: dodatkowe parametry (niewymagany argument)

Przykład: Dodawanie obsługiwacza wydarzenia click

W tym przykładzie obsługiwacz wydarzenia jest dodawany do przycisku. Kiedy użytkownik kliknie na przycisk, pojawia się komunikat z powiadomieniem.

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>Event Example</title>
        </head>
        <body>
        <button id="myButton">Click me</button>

        <script>
          const button = document.getElementById('myButton');

          button.addEventListener('click', function() {
            alert('Button clicked!');
          });
        </script>
        </body>
      </html>
    
  

Przykład: Dodawanie kilku obsługiwaczy wydarzeń

Za pomocą addEventListener można dodawać kilka obsługiwaczy do jednego wydarzenia.

W tym przykładzie dwa obsługiwacze wydarzenia są dodawane do przycisku. Przy kliknięciu oba obsługiwacze są wykonywane kolejno, wyświetlając odpowiednie komunikaty w konsoli.

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>Event Example</title>
        </head>
        <body>
          <button id="myButton">Click me</button>

          <script>
            const button = document.getElementById('myButton');

            button.addEventListener('click', function() {
              console.log('First handler');
            });

            button.addEventListener('click', function() {
              console.log('Second handler');
            });
          </script>
        </body>
      </html>
    
  

5.3 Użycie parametru options

Parametr options pozwala dostosować zachowanie obsługiwacza wydarzeń. Najczęściej używane opcje:

  • once: jeśli true, obsługiwacz zostanie wywołany tylko raz, po czym automatycznie usunięty
  • capture: jeśli true, wydarzenie jest obsługiwane podczas fazy przechwytywania zamiast fazy propagacji
  • passive: jeśli true, wskazuje, że obsługiwacz nigdy nie wywoła preventDefault()

Przykład: Obsługiwacz, który wykonuje się tylko raz

W tym przykładzie obsługiwacz wydarzenia zadziała tylko raz, po czym zostanie automatycznie usunięty.

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>Event Example</title>
        </head>
        <body>
          <button id="myButton">Click me</button>

          <script>
            const button = document.getElementById('myButton');

            button.addEventListener('click', function() {
              alert('This will be shown only once');
            }, { once: true });
          </script>
        </body>
      </html>
    
  

5.4 Usuwanie obsługiwaczy wydarzeń

Usuwanie obsługiwaczy wydarzeń za pomocą removeEventListener

Metoda removeEventListener pozwala usuwać obsługiwacze wydarzeń, które zostały dodane za pomocą addEventListener. Aby to zrobić, należy przekazać te same argumenty, które zostały użyte przy dodawaniu obsługiwacza.

Składnia:

    
      element.removeEventListener(event, handler, options)
    
  

Gdzie:

  • element: element, od którego usuwany jest obsługiwacz wydarzeń
  • event: typ wydarzenia, którego obsługiwacz należy usunąć
  • handler: funkcja, która była przypisana jako obsługiwacz wydarzenia
  • options: dodatkowe parametry (muszą zgadzać się z parametrami użytymi przy dodawaniu obsługiwacza)

Przykład: Usuwanie obsługiwacza wydarzenia click

W tym przykładzie obsługiwacz wydarzenia click jest dodawany do przycisku. Naciśnięcie innego przycisku usuwa obsługiwacz wydarzenia click.

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>Event Example</title>
        </head>
        <body>
          <button id="myButton">Click me</button>
          <button id="removeButton">Remove Click Handler</button>

          <script>
            const button = document.getElementById('myButton');
            const removeButton = document.getElementById('removeButton');

            function clickHandler() {
              alert('Button clicked!');
            }

            button.addEventListener('click', clickHandler);

            removeButton.addEventListener('click', function() {
              button.removeEventListener('click', clickHandler);
              alert('Click handler removed');
            });
          </script>
        </body>
      </html>
    
  
1
Опрос
DOM-elementy,  41 уровень,  4 лекция
недоступен
DOM-elementy
DOM-elementy
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION