🔥Limited Offer: Get 50% OFFon AI & Full Stack Courses🔥
Back to JavaScript Notes
Topic #119

JS Event Listener

Using an Event Listener

This is a copy of the previous project.

Now using Event Listeners instead of Onclick Attributes.

0

Using Event Listeners

Using addEventListener() makes it easier to:

  • Keep HTML and JavaScript separated
  • Add multiple events to the same element
  • Write cleaner code in bigger projects

HTML Code

<h2>Counter</h2>

<p id="count" style="font-size:40px;">0</p>

<button id="btnPlus">+</button>

<button id="btnMinus">-</button>

<button id="btnReset">Reset</button>

<button id="btnSave">Save</button>

<button id="btnLoad">Load</button>

<script>

// JavaScript goes here

</script>

JavaScript Code

// Add event listeners

document.getElementById("btnPlus").addEventListener("click", increaseCount);

document.getElementById("btnMinus").addEventListener("click", decreaseCount);

document.getElementById("btnReset").addEventListener("click", resetCount);

document.getElementById("btnSave").addEventListener("click", saveCount);

document.getElementById("btnLoad").addEventListener("click", loadCount);

// Declare the counter

let count = 0;

// Load counter when the page opens

loadCount();

// Function to display the counter

function updateCount() {

  document.getElementById("count").innerHTML = count;

}

// Function to increase the counter

function increaseCount() {

  count++;

  updateCount();

}

// Function to decrease the counter

function decreaseCount() {

  if (count > 0) {

  count--;

    updateCount();

  }

}

// Function to reset the counter

function resetCount() {

  count = 0;

  updateCount();

}

// Function to save the counter

function saveCount() {

  localStorage.setItem("count", count);

}

// Function to load the counter

function loadCount() {

  let saved = localStorage.getItem("count");

  if (saved !== null) {

    count = Number(saved);

  }

  updateCount();

}

  • JavaScript is moved to an external file (counter.js)
  • Uses DOMContentLoaded so JavaScript runs only after HTML is ready
  • Cleaner structure using small functions + element variables
  • Shows a short Saved! message
  • Shows a short Loaded! message

HTML Code

<!DOCTYPE html>

<html>

<body>

<h2>Counter</h2>

<p id="count" style="font-size:40px;">0</p>

<button id="btnPlus">+</button>

<button id="btnMinus">-</button>

<button id="btnReset">Reset</button>

<button id="btnSave">Save</button>

<button id="btnLoad">Load</button>

<script  src="counter.js"></script>

</body>

</html>

Note: Notice that the <script> tag is placed at the bottom, before </body>.

counter.js

document.addEventListener("DOMContentLoaded", function () {

// Declare the counter

let count = 0;

// Use element variables

const countEl = document.getElementById("count");

const msgEl = document.getElementById("message");

const btnPlus = document.getElementById("btnPlus");

const btnMinus = document.getElementById("btnMinus");

const btnReset = document.getElementById("btnReset");

const btnSave = document.getElementById("btnSave");

const btnLoad = document.getElementById("btnLoad");

// Add event listeners

btnPlus.addEventListener("click", increaseCount);

btnMinus.addEventListener("click", decreaseCount);

btnReset.addEventListener("click", resetCount);

btnSave.addEventListener("click", saveCount);

btnLoad.addEventListener("click", loadCount);

// Function to display the counter

function updateCount() {

  document.getElementById("count").innerHTML = count;

}

// Function to diplay message

function showMessage(text) {

  msgEl.innerHTML = text;

  setTimeout(function () {

    msgEl.innerHTML = "";

  }, 3000);

}

// Function to increase the counter

function increaseCount() {

  count++;

  updateCount();

}

// Function to decrease the counter

function decreaseCount() {

  count--;

  updateCount();

}

// Function to reset the counter

function resetCount() {

  count = 0;

  updateCount();

}

// Function to save the counter

function saveCount() {

  localStorage.setItem("count", count);

  showMessage("Saved!");

}

// Function to load the counter

function loadCount() {

  let saved = localStorage.getItem("count");

  if (saved !== null) {

    count = Number(saved);

    showMessage("Loaded!");

  }

  updateCount();

}

});

JavaScript in External File

Using counter.js makes your project:

  • More Organized
  • Keep HTML and JavaScript separated
  • Easier to read and to reuse
  • More like real-world projects

DOMContentLoaded

Why use DOMContentLoaded?

When you use an external JavaScript file, the browser may load the script before the HTML is ready. So we use:

document.addEventListener("DOMContentLoaded", function() {

// JavaScript code

});

This means: Run the JavaScript code after the page has finished loading the HTML.


Note: JavaScript Projects JavaScript Counter A counter project with restore and save in localStorage. JavaScript Event Listener The counter project using event listener instead of onclick. JavaScript To-Do List A do-do list saved in an array in local storage. JavaScript Modal Popup A modal popup window that appears on top of the page. JavaScript Form Validation An HTML Form with form validation.

Want to go beyond the notes?

Join CodingNow 2.0's JavaScript course — live mentorship, real projects, and 100% placement support.

Enroll Now — Free Demo Available

JS Event Listener – FAQs

Quick answers about learning JS Event Listener in JavaScript.

This free note from CodingNow 2.0 explains JS Event Listener in JavaScript — concept, syntax and worked code examples you can copy, run and revise before interviews.
Yes. Every JavaScript topic on CodingNow 2.0, including JS Event Listener, is 100% free with no signup required.
With focused practice, most students grasp JS Event Listener in 1–3 days from these notes; pairing it with CodingNow 2.0's mentor-led course takes you to job-ready depth faster.
Use the code examples in this note, then ask doubts for free on the CodingNow 2.0 Community (/community) — expert instructors answer within 24 hours.
WhatsApp
Call NowEnroll Now