Events…what are they and how do we handle them? Events are things that your end user does…clicks on something, hovers their mouse over a section of the page or even loads the page. Events allow our JavaScript functionality program work with the user to create a truly interactive experience. So how does it work? At their most basic level, they are HTML attributes. Here is an example…
[code lang=”html”]
<body onload="someFunction();">
<!– Some HTML goodness…–>
</body>
[/code]
As you can see from the example above, we are using an HTML attribute (in this case onload) to run a function. So someFunction() will run when the page loads. There are a lot of events…
- onclick
- onmouseover
- onmouseout
HTML Events​
Having HTML attributes makes wiring up our JavaScript functionality into our HTML easy. We simply have to place our function call in whatever event we want to trigger it. Is it ideal though? The problem with doing this is it violates the concept of separation of concerns. We do not want to commingle our content (HTML) with our functionality (JavaScript). A solution is to assign the function reference to the event within our JavaScript code. So instead of putting someFunction() in our onload attribute, we can do this…
[code lang=”js”]
// Attach a function to the onload event window.onload = someFunction();
[/code]
So we can ‘wire up’ our HTML events without even going into the HTML! You can do this for all the events. Frameworks, such as jQuery make this stuff even easier and less verbose. I will save those topics for when I cover some jQuery stuff though.
Now, there is an issue with the way I did it. We cannot pass arguments this way. This is where function literals come into play. I will save that topic for a future post..coming soon. How’s that for a teaser?
Happy Coding!
Clay Hess