JavascriptProva

domenica 29 gennaio 2012

Studio di createEvent, initMouseEvent, dispatchEvent

Analizziamo questo codice per cercare di ricordarlo meglio...

function evoca(){
 var oggetto=document.getElementById("uno");
 var evento=document.createEvent("MouseEvents")
 evento.initMouseEvent('click', true, true, window, 1, 12, 345, 7, 220, false, false, true, false, 0, null)
 oggetto.dispatchEvent(evento);
}
Si tratta di tre istruzioni:
  • createEvent
  • initMouseEvent
  • dispatchEvent

createEvent è riferito all'oggetto document.
initMouseEvent è riferito all'evento creato.
dispatchEvent è riferito all'oggetto al quale si attribuisce l'evento.
Ora vediamo il parametro di createEvent.
Il parametro di createEvent che ho visto è MouseEvents, che sta per eventi del mouse, dei quali quelli che mi vengono in mente sono click, mousedown, mouseup, mouseover, mouseove, mouseout.

Per quanto riguarda initMouseEvent, che inizializza gli eventi del tipo MouseEvents: Se la scrivo così forse mi viene più facile memorizzare...
evento.initMouseEvent("click",true,true,window,
    1,0,0,0,0,
    false,false,false,false,
    0,null)
Ecco: il primo gruppo riguarda il nome dell'evento, il più facile, e, credo, lo scope dell'evento. In mezzo ci sono valori riguardanti il bubbling e la cancellazione dell'evento, che devo ancora imparare ma che credo si possano lasciare a true.

Il secondo gruppo è fatto da un'informazione chiamata detali e dalle coordinate screenX, screenY, clientX, clientY.

Il terzo gruppo riguarda i tasti da premere insieme al mouse: ctrlKey, altKey, shiftKey, metaKey, e credo possano restare tranquillamente a false.

L'ultimo gruppo è dato dal bottone premuto sul mouse e dal relatedTarget.

Bene... forse è il caso di vedere nei dettagli ogni singola voce. ma per il momento credo sia più pratico esercitarsi a scrivere createEvent e initMouseEvent con una certa scioltezza...

Nessun commento:

Posta un commento