我有以下代码:

var bt_empty = document.getElementById("bt_empty");
if(bt_empty)
  bt_empty.onclick = emptyCart();


但是每次我打开页面时,按钮都会触发。我该如何避免呢?
谢谢

最佳答案

emptyCart()删除括号:

bt_empty.onclick = emptyCart;


通过包含括号,它将执行函数,然后将返回值分配给onclick事件,而不是分配实际的函数本身。



包含括号的唯一原因是该函数返回一个函数。例如:

function emptyCart(){
    return function(){
        console.log("clicked");
    };
}

bt_empty.onclick = emptyCart();

09-25 21:02