Event Handling

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
…and tons more.  Here is a list of them…

 

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

More To Explore

Crisis. Concept of reducing costs. Bag with dollars money in vise.
Code

Compression Streams API: Native gzip/deflate for the web

The Compression Streams API brings native, streaming gzip and deflate to the web platform. With built‑in CompressionStream and DecompressionStream, you can compress or decompress data on the fly—no third‑party libraries required. It integrates cleanly with Fetch/Response to turn streams into ArrayBuffer, Blob, Uint8Array, String, or JSON, works in Web Workers, and is part of the 2023 Baseline. Use it to shrink uploads, store compressed data offline, and streamline real‑time pipelines while keeping bundles lean.

copy and paste concept
Code

Quick Tour of the Clipboard API

The Clipboard API brings modern, asynchronous copy, cut, and paste to web apps. Access Navigator.clipboard in secure contexts, handle copy/cut/paste events, and manage permissions and user activation. Note that Chromium, Firefox, and Safari differ on permissions and transient activation, so test across browsers.

Share This Post

small_c_popup.png

Need help?

Let's have a chat...


Login

Jump Back In!

Here at Webolution Designs, we love to learn. This includes sharing things we have learned with you. 

Register

Begin Your Learning Journey Today!

Come back inside to continue your learning journey.