<button id="but">按鈕</button>
<script>
var but = document.getElementByid("but");
but.onclick = demo(); // 錯誤寫法
function demo() {
alert("事件處理");
}
</script>
`but.onclick = demo()` 會立即執行 `demo()` 並將其返回值(undefined)賦給 `onclick`。正確寫法是賦予函數引用:`but.onclick = demo`(不加括號)。
| 錯誤寫法 | 正確寫法 | 說明 |
|---|---|---|
| `btn.onclick = demo()` | `btn.onclick = demo` | 賦予函數引用,點擊時調用 |
| `btn.onclick = function() { demo(); }` | `btn.onclick = () => demo()` | 匿名函數包裝,可傳參 |
| `btn.addEventListener('click', demo())` | `btn.addEventListener('click', demo)` | 現代事件監聽推薦寫法 |
<button id="but">按鈕</button>
<script>
// 注意:getElementById 大小寫敏感
var but = document.getElementById("but");
but.onclick = demo; // 無括號
function demo() {
alert("事件處理");
}
</script>