How to Remove an Event Handler in jQuery
Topic: JavaScript / jQueryPrev|Next
Answer: Use the jQuery off()
Method
You can simply use the jQuery off()
method to remove the event handlers that were attached with on()
. Don't use the unbind()
method, it has been deprecated since jQuery 3.0.
If you try out the following example, you'll find the event handler function sayHello()
is not executing for the button element having the id btnOff
:
Example
Try this code »<!DOCTYPE html>
<html lang="en">
<head>
<title>jQuery Remove Event Handler</title>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
function sayHello(){
alert("Hello, World!");
}
$(document).ready(function(){
// Attach an event handler function to click event
$("#btnOn, #btnOff").on("click", sayHello);
// Removes the click event handler from second button
$("#btnOff").off("click");
});
</script>
</head>
<body>
<button type="button" id="btnOn">Click On</button>
<button type="button" id="btnOff">Click Off</button>
</body>
</html>
Related FAQ
Here are some more FAQ related to this topic: