Event Object
jQuery’s event system normalizes the event object according to W3C standards. The event object is guaranteed to be passed to the event handler. Most properties from the original event are copied over and normalized to the new event object.
jQuery.Event Constructor
The jQuery.Event
constructor is exposed and can be used when calling trigger. The new
operator is optional.
Check trigger‘s documentation to see how to combine it with your own event object.
Example:
//Create a new jQuery.Event object without the "new" operator.
var e = jQuery.Event("click");
// trigger an artificial click event
jQuery("body").trigger( e );
As of jQuery 1.6, you can also pass an object to jQuery.Event()
and its properties will be set on the newly created Event object.
Example:
// Create a new jQuery.Event object with specified event properties.
var e = jQuery.Event("keydown", { keyCode: 64 });
// trigger an artificial keydown event with keyCode 64
jQuery("body").trigger( e );
Event Properties
The following properties are guaranteed to be members of the event object, though some of their values may be undefined, depending on the event:
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 normalizes the following properties for cross-browser consistency:
target
relatedTarget
pageX
pageY
which
metaKey
Special Properties
Certain native events may have special properties that can be accessed as properties of the event.originalEvent
object. To make special properties available in all event objects, we can add them to the jQuery.event.props
array.
Example:
// add the dataTransfer property for use with the native `drop` event
// to capture information about files dropped into the browser window
jQuery.event.props.push("dataTransfer");
-
event.currentTarget
The current DOM element within the event bubbling phase.
-
event.data
The optional data passed to jQuery.fn.bind when the current executing handler was bound.
-
event.isDefaultPrevented()
Returns whether event.preventDefault() was ever called on this event object.
-
event.isImmediatePropagationStopped()
Returns whether event.stopImmediatePropagation() was ever called on this event object.
-
event.isPropagationStopped()
Returns whether event.stopPropagation() was ever called on this event object.
-
event.namespace
The namespace specified when the event was triggered.
-
event.pageX
The mouse position relative to the left edge of the document.
-
event.pageY
The mouse position relative to the top edge of the document.
-
event.preventDefault()
If this method is called, the default action of the event will not be triggered.
-
event.relatedTarget
The other DOM element involved in the event, if any.
-
event.result
The last value returned by an event handler that was triggered by this event, unless the value was
undefined
. -
event.stopImmediatePropagation()
Prevents other event handlers from being called.
-
event.stopPropagation()
Prevents the event from bubbling up the DOM tree, preventing any parent handlers from being notified of the event.
-
event.target
The DOM element that initiated the event.
-
event.timeStamp
The difference in milliseconds between the time an event is triggered and January 1, 1970.
-
event.type
Describes the nature of the event.
-
event.which
For key or button events, this attribute indicates the specific button or key that was pressed.