user actions
code
Click me
<script>
function sayHello() {
alert('hello');
}
</script>
<div onclick="sayHello()">
Click me
</div>
</div>
<script>
function sayHelloOnce(e) {
alert('hello');
event.target.removeAttribute('onclick');
}
</script>
<div onclick="sayHelloOnce()">
Click me
</div>
</div>
element['on' + eventName] = eventHandler;
<div id="superID">Click me</div>
<script>
var superDiv = document.querySelector('#superID');
superDiv.onclick = function (e) {
alert('click');
}
</script>
<div id="superId">Click me</div>
<script>
var superDiv = document.querySelector('#superID');
superDiv.onclick = function (e) {
alert('click');
superDiv.onclick = null;
}
</script>
element.addEventListener(eventName, eventHandler, useCapture);
assert(typeof eventName === 'string');
assert(typeof eventHandler === 'function');
assert(typeof useCapture === 'boolean');
<div id="megaID">Click me</div>
<script>
var megaDiv = document.querySelector('#megaID');
function alertClick() { alert('click'); }
megaDiv.addEventListener('click', alertClick);
</script>
<div id="megaId">Click me</div>
<script>
var megaDiv = document.querySelector('#megaId');
function alertClickOnce() {
alert('click');
megaDiv.removeEventListener('click', alertClickOnce);
}
megaDiv.addEventListener('click', alertClickOnce);
</script>
Event object - argument passed to event handler
<div id="prettyID">Click me</div>
<script>
var div = document.querySelector('#prettyID');
div.addEventListener('click', function (e) {
// e is EventObject
assert(typeof e === 'object');
assert(e instanceof Event)
});
</script>
<div id="prettyID">Click me</div>
<script>
var div = document.querySelector('#prettyID');
div.addEventListener('click', function (e) {
assert(e.target === div);
});
</script>
properties
methods
event.preventDefault
<a id="linkToGoogle" href="http://google.com">Google<a>
<script>
var linkToGoogle = document.querySelector('linkToGoogle');
linkToGoogle.addEventListener('click', function (e) {
e.preventDefault();
window.location.href = 'http://yandex.ru'; // Найдется всё!
});
</script>
properties
properties
properties
properties
<ul>
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a></li>
<li><a href="#">Item 4</a></li>
</ul>
Don't you think it sucks?
<ul>
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a></li>
<li><a href="#">Item 4</a></li>
</ul>