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