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");