可能重复:
为什么单击事件处理程序在页面加载后立即触发?
我对 Javascript 函数的理解存在差距,所以我很难理解为什么如果我在没有匿名包装器的情况下定义事件处理程序会自动触发它。
HTML
<a href="#" id="change-html">Change HTML</a>
Javascript #1
var btn = $('#change-html');
btn.click(bindClick(btn)); // bindClick gets executed right away and only once
function bindClick(source){
console.log('get here');
}
Javascript #2
var btn = $('#change-html');
btn.click(function(){
bindClick(btn); // bindClick is only executed on the anchor's click event
});
function bindClick(source){
console.log('get here');
}