JavaScript/Notes/IBD: Difference between revisions
| Line 1: | Line 1: | ||
== Interface Based Design == | == Interface Based Design == | ||
Using a common <b>interface</b>, different Event <b>adapters</b> are designed to handle different types of event registration: | |||
Using a common <b>interface</b>, different Event <b>adapters</b> | |||
# Event handler properties | # Event handler properties | ||
# DOM event registration mechanisms | # DOM event registration mechanisms | ||
<source lang="javascript"> | |||
get(src, sEvent); // Gets an event publisher. | |||
addCallback(src, sEvent, callback); | |||
removeCallback(o, type, cb[, useCapture); | |||
</source> | |||
==== Event Handler Properties ==== | ==== Event Handler Properties ==== | ||
Revision as of 08:18, 1 November 2013
Interface Based Design
Using a common interface, different Event adapters are designed to handle different types of event registration:
- Event handler properties
- DOM event registration mechanisms
<source lang="javascript"> get(src, sEvent); // Gets an event publisher. addCallback(src, sEvent, callback); removeCallback(o, type, cb[, useCapture); </source>
Event Handler Properties
Each event is a property name. The value is a function or null. The pattern works equally well for custom events on user-defined objects and DOM events.
DOM Elements <source lang="javascript"> el["onclick"] = function(ev) {
alert(this);
};</source>
Custom Objects and Events <source lang="javascript"> userPicker.onuserselected= function(ev) {
console.log(ev.user + " chosen.");
}; </source>
Event Listener Interface
<source lang="javascript"> el.addEventListener("click", function(ev) {
alert("clicked");
}, false); </source>
Custom objects <source lang="javascript"> userPicker.addCallback("onuserselected", function(ev) {
console.log(ev.user + " chosen.");
}); </source>