How to disable mouse event on certain elements using JavaScript?

In JavaScript, you can disable mouse events on specific elements using the CSS pointer-events property. This technique prevents elements from receiving mouse clicks, hover effects, and other pointer interactions.

Using pointer-events CSS Property

The most effective method is setting pointer-events: none via JavaScript. This disables all mouse interactions on the target element.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Disable Mouse Events</title>
<style>
   body {
      font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
   }
   .result {
      font-size: 18px;
      font-weight: 500;
      color: rebeccapurple;
      cursor: pointer;
      padding: 10px;
      border: 2px solid rebeccapurple;
      margin: 20px 0;
   }
   .size {
      font-size: 30px;
   }
   .disabled {
      opacity: 0.5;
   }
</style>
</head>
<body>
<h1>Disable Mouse Events using JavaScript</h1>
<div class="result">Click me to toggle size!</div>
<button class="Btn">DISABLE</button>
<button class="Btn">ENABLE</button>
<h3>Click the buttons above to enable or disable mouse events on the purple text</h3>

<script>
   let resEle = document.querySelector(".result");
   let BtnEle = document.querySelectorAll(".Btn");
   
   // Add click event to toggle size
   resEle.addEventListener("click", () => {
      resEle.classList.toggle("size");
   });
   
   // Disable mouse events
   BtnEle[0].addEventListener("click", () => {
      resEle.style.pointerEvents = "none";
      resEle.classList.add("disabled");
   });
   
   // Enable mouse events
   BtnEle[1].addEventListener("click", () => {
      resEle.style.pointerEvents = "auto";
      resEle.classList.remove("disabled");
   });
</script>
</body>
</html>

How It Works

The pointer-events CSS property controls how elements respond to mouse events:

  • pointer-events: none - Disables all mouse interactions
  • pointer-events: auto - Enables normal mouse behavior (default)

Alternative Methods

You can also disable mouse events by removing event listeners or using event prevention:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Alternative Methods</title>
<style>
   .clickable {
      padding: 10px;
      background: lightblue;
      cursor: pointer;
      margin: 10px 0;
   }
</style>
</head>
<body>
<div class="clickable" id="method1">Method 1: Using pointer-events</div>
<div class="clickable" id="method2">Method 2: Removing event listener</div>
<button onclick="disableAll()">Disable All</button>
<button onclick="enableAll()">Enable All</button>

<script>
   let method1 = document.getElementById("method1");
   let method2 = document.getElementById("method2");
   
   // Original click handlers
   let handler1 = () => alert("Method 1 clicked!");
   let handler2 = () => alert("Method 2 clicked!");
   
   method1.addEventListener("click", handler1);
   method2.addEventListener("click", handler2);
   
   function disableAll() {
      // Method 1: CSS pointer-events
      method1.style.pointerEvents = "none";
      method1.style.opacity = "0.5";
      
      // Method 2: Remove event listener
      method2.removeEventListener("click", handler2);
      method2.style.opacity = "0.5";
   }
   
   function enableAll() {
      // Re-enable pointer events
      method1.style.pointerEvents = "auto";
      method1.style.opacity = "1";
      
      // Re-add event listener
      method2.addEventListener("click", handler2);
      method2.style.opacity = "1";
   }
</script>
</body>
</html>

Key Points

  • pointer-events: none is the most reliable method for disabling all mouse interactions
  • The property affects click, hover, and cursor changes
  • Child elements inherit the pointer-events behavior
  • Always provide visual feedback (opacity, cursor changes) when disabling elements

Conclusion

Use pointer-events: none to effectively disable mouse events on elements. This CSS property provides complete control over element interactivity and is the recommended approach for most use cases.

Updated on: 2026-03-15T23:18:59+05:30

4K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements