Episode 18 of 24
The Event Object in jQuery
Learn about the event object — accessing event data, preventing defaults, and stopping propagation.
When an event fires, jQuery passes an event object to your handler function containing useful information about the event.
Accessing the Event Object
$("button").click(function(event) {
console.log(event.type); // "click"
console.log(event.target); // The DOM element clicked
console.log(event.timeStamp); // When the event occurred
});
Mouse Event Properties
$(document).click(function(e) {
console.log(e.pageX, e.pageY); // Position relative to document
console.log(e.clientX, e.clientY); // Position relative to viewport
console.log(e.which); // Mouse button (1=left, 2=middle, 3=right)
});
Keyboard Event Properties
$(document).keydown(function(e) {
console.log(e.key); // "a", "Enter", "Escape"
console.log(e.keyCode); // Numeric key code
console.log(e.ctrlKey); // Was Ctrl held?
console.log(e.shiftKey); // Was Shift held?
console.log(e.altKey); // Was Alt held?
});
preventDefault()
Stops the default browser action:
// Prevent link navigation
$("a").click(function(e) {
e.preventDefault();
console.log("Link click prevented!");
});
// Prevent form submission
$("form").submit(function(e) {
e.preventDefault();
// Handle form with JavaScript instead
});
stopPropagation()
Prevents the event from bubbling up to parent elements:
$(".inner").click(function(e) {
e.stopPropagation();
console.log("Inner clicked — parent won't fire!");
});
$(".outer").click(function() {
console.log("Outer clicked"); // Won't fire if inner is clicked
});
Event Delegation with event.target
$("ul").click(function(e) {
let $clicked = $(e.target);
if ($clicked.is("li")) {
$clicked.toggleClass("done");
}
});