Che cosa significa "initialize event handler" in questo contesto?

4

In file1.js ho letto:

// NOTE: initialize your app event handlers here, see file2.js for a simple event handler example

// TODO: configure following to work with both touch and click events (mouse + touch)
// see http://msopentech.com/blog/2013/09/16/add-pinch-pointer-events-apache-cordova-phonegap-app/

//...overly simple example...
//    var el, evt ;
//
//    if( navigator.msPointerEnabled || !('ontouchend' in window))    // if on Win 8 machine or no touch
//        evt = "click" ;                                             // let touch become a click event
//    else                                                            // else, assume touch events available
//        evt = "touchend" ;                                          // not optimum, but works
//
//    el = document.getElementById("id_btnHello") ;
//    el.addEventListener(evt, myEventHandler, false) ;

in file2.js ho letto:

// This file contains your event handlers, the center of your application.
// NOTE: see file1.js for event handler initialization code.

// example event handler
function myEventHandler() {
  // event handler code
};

Quale " initialize event handlers here " in file1.js dovrebbe significare?

Che cosa dovrei fare lì?

È un posto dove definire ulteriori gestori di eventi, come quello in file2.js ?

O potrebbe essere che per " initialize " significhi che file1.js è il posto dove dovrei usare di un gestore pari (cioè usarlo all'interno di un listener di eventi, come nell'esempio che segue, in file1.js )?

Ho cercato su google l'espressione "inizializzazione del gestore di eventi" o "inizializza il gestore di eventi" e non ho trovato quasi nulla, quindi sono confuso ...

Aggiornamento: nel codice sopra, in file2.js , avevo dimenticato di includere i commenti iniziali. Li ha aggiunti Speriamo che questo possa aiutare a comprendere meglio i diversi ruoli dei due file?

    
posta jj_ 31.03.2016 - 05:35
fonte

2 risposte

2

Definizione

Un gestore di eventi è solo un pezzo di codice (funzione nel caso di Javascript) che fa qualcosa quando si verifica un evento specifico.

Un esempio

Un esempio potrebbe essere l'evento mouseover che si verifica quando il mouse (qualsiasi dispositivo di puntamento) si sposta su un elemento della pagina.

<ul id="test">
  <li>item 1</li>
  <li>item 2</li>
  <li>item 3</li>
</ul>

<script>
  var test = document.getElementById("test");

  // ... //

  // this handler will be executed every time the cursor is 
  // moved over a different list item
  test.addEventListener("mouseover", function( event ) {   
    // highlight the mouseover target
    event.target.style.color = "orange";

    // reset the color after a short delay
    setTimeout(function() {
      event.target.style.color = "";
    }, 500);
  }, false);
</script>

Codice di esempio "preso in prestito da" MDN .

Esempio di spiegazione

L'esempio sopra mostra l'aggiunta di un listener di eventi (o gestore di eventi) durante il processo di inizializzazione per lo script. Il gestore eventi è definito in linea (la parte in cui function( event ) { inizia). La funzione inline viene chiamata ogni volta che si verifica il nostro evento.

Ciò significa che quando si sposta il mouse su una delle voci dell'elenco, il colore del testo per quell'elemento dell'elenco diventa arancione per circa mezzo secondo.

Alcune risposte

Ora che le definizioni sono fuori mano, parliamo di rispondere alle tue domande.

  • Che cosa "inizializza i gestori di eventi qui" in file1.js dovrebbe significare?

Significa che dovresti creare le tue funzioni di gestione degli eventi immediatamente dopo il commento. Dovrai anche aggiungere del codice per aggiungere il gestore di eventi all'oggetto su cui si verifica l'evento (il test.addEventListener("mouseover", ... parte).

  • È un posto per definire ulteriori gestori di eventi, come quello in file2.js?

Puoi includere il codice in quel punto o puoi fare riferimento a un file esterno, che è la tua scelta in che modo vuoi gestirlo.

  • O potrebbe essere che con "initialize" significano che file1.js è il posto in cui dovrei usare un gestore pari (cioè utilizzarlo all'interno di un listener di eventi, come nell'esempio che segue, nel file1. js)?

La stessa risposta dell'ultima domanda.

    
risposta data 31.03.2016 - 06:43
fonte
0

IMO cosa significano con "inizializza i gestori di eventi" devi farlo:

myElement.addEventListener(evt, myEventHandler, false) ;

perché:

  1. Assegnando un gestore di eventi a un elemento, per un dato evento (clic), un po ' danno vita al gestore pari, lo si inizializza (in senso più ampio (in mancanza di un più rigoroso uno, in questo contesto)).
  2. L'altra interpretazione possibile, che "inizializza i tuoi gestori pari" deve essere intesa come definire le funzioni del gestore di eventi , non avrebbe molto senso, perché i commenti nel codice sembrano riferirsi a file2.js come il luogo in cui sono definite le funzioni del gestore di eventi.
risposta data 31.03.2016 - 06:39
fonte

Leggi altre domande sui tag