Объект Event

При обработке события браузер автоматически передает в функцию обработчика в качестве параметра объект Event, который инкапсулирует всю информацию о событии. И с помощью его свойств мы можем получить эту информацию:

Например:
	<!DOCTYPE html>
	<html>
	<head>
	<meta charset="utf-8" />
	<style>
	#rect{
	width:50px;
	height:50px;
	background-color:blue;
	}
	</style>
	</head>
	<body>
	<div id="rect" </div>
	<script>
	function handler(event){
	
	console.log("Тип события: " + event.type);
	
	console.log(event.target);
	}
	var rect = document.getElementById("rect");
	rect.addEventListener("click", handler);
	
	</script>
	</body>
	</html>
	
Причем в данном случае свойство target представляет собой элемент, поэтому мы можем манипулировать им как и любыми другими узлами и элементами DOM. Например, изменим фоновый цвет:
	function handler(e){
	
	e.target.style.backgroundColor = "red";
	}
	

Остановка выполнения события

С помощью метода preventDefault() объекта Event мы можем остановить дальнейшее выполнение события. В ряде случаев этот метод не играет большой роли. Однако в некоторых ситуаций он может быть полезен. Например, при нажатии на ссылку мы можем с помощью дополнительной обработки определить, надо ли переходить по ссылке или надо запретить переход. Или другой пример: пользователь отправляет данные формы, но в ходе обработки в обработчике события мы определили, что поля формы заполнены неправильно, и в этом случае мы также можем запретить отправку.

Например, запретим переход по ссылке после 12 часов:

	<a href="http://google.com" id="link">Поиск</a>
	<script>
	function linkHandler(e){
	
	var date = new Date();
	var hour = date.getHours();
	console.log(hour);
	if(hour>12){
	
	e.preventDefault();
	document.write("После 12 переход запрещен");
	}
	}
	var link = document.getElementById("link");
	link.addEventListener("click", linkHandler);
	</script>
Output