<button id="btn">Click Me</button>
<script>
document.getElementById("btn").addEventListener("click", function () {
alert("Button clicked!");
});
</script>
element.addEventListener(event, function, useCapture);
const button = document.querySelector("#btn");
button.addEventListener("click", () => {
console.log("Button was clicked");
});
<input type="text" id="name" />
<script>
document.getElementById("name").addEventListener("input", function () {
console.log(this.value);
});
</script>
Runs every time the user types.
document.addEventListener("click", function (event) {
console.log(event.target);
});
document.querySelector("form").addEventListener("submit", function (e) {
e.preventDefault();
alert("Form submission stopped!");
});
<button onclick="sayHello()">Click</button>
<script>
function sayHello() {
alert("Hello");
}
</script>
element.addEventListener("click", handler, true); // capturing
| Feature | Inline Events | Event Listeners |
|---|---|---|
| Code separation | No | Yes |
| Multiple handlers | No | Yes |
| Modern practice | ❌ Not recommended | ✅ Recommended |
| React compatibility | Poor | Excellent |