jQuery: l'oggetto Event

jQuery: l'oggetto Event

jQuery normalizza l'oggetto event seguendo gli standard del W3C. L'oggetto in questione viene quindi passato al gestore di eventi e molte sue proprietà vengono normalizzate per poter essere usate in modo cross-browser.

Il costruttore jQuery.Event

Questo costruttore viene reso accessibile e può essere usato in combinazione con trigger(). Esempio:


// Crea un nuovo oggetto Event senza l'operatore new
var e = jQuery.Event("click");

// Lancia un evento click fittizio
jQuery("body").trigger( e );

A partire da jQuery 1.6 si può anche passare un oggetto al costruttore jQuery.Event() e le sue proprietà verranno impostate sul nuovo oggetto Event.

Esempio:


// Crea un nuovo oggetto Event con le proprietà dell'evento
var e = jQuery.Event("keydown", { keyCode: 64 });

// Lancia un evento keydown fittizio con keyCode 64
jQuery("body").trigger( e );

Proprietà di Event

Le seguenti proprietà fanno parte dell'oggetto Event, ma alcuni dei loro valori possono essere undefined a seconda dell'evento:

altKey, attrChange, attrName, bubbles, button, cancelable, charCode, clientX, clientY, ctrlKey, currentTarget, data, detail, eventPhase, fromElement, handler, keyCode, layerX, layerY, metaKey, newValue, offsetX, offsetY, originalTarget, pageX, pageY, prevValue, relatedNode, relatedTarget, screenX, screenY, shiftKey, srcElement, target, toElement, view, wheelDelta, which

jQuery normalizza le seguenti proprietà per essere usate in modo cross-browser:

  • target
  • relatedTarget
  • pageX
  • pageY
  • which
  • metaKey

Proprietà speciali

Alcuni eventi nativi possono avere proprietà speciali che possono essere usate come proprietà dell'oggetto event.originalEvent. Per redere queste proprietà disponibili in tutti gli oggetti Event, possiamo aggiungerle all'array jQuery.event.props.

Esempio:


// Aggiunge la proprietà dataTransfer per essere usata con l'evento 'drop' nativo
// per ottenere informazioni sui file trascinati nella finestra del browser
jQuery.event.props.push("dataTransfer");
Torna su