考虑以下两个代码示例:
// Example 1
$('#myButton').click(function() {
alert('I was clicked');
});
// Example 2
$('#myButton').click(
alert('I was clicked');
);
为什么示例 2 不起作用?
最佳答案
您的第二个代码片段不起作用,因为它调用 alert() window
对象的方法(返回 undefined
),并传递它返回的值(因此,undefined
)作为 click() 的处理程序jQuery 对象的方法。
undefined
不是有效的事件处理程序,因此 click()
会忽略它并且不执行任何操作(除了可能将错误记录到控制台,具体取决于您的浏览器)。
您的第一个代码片段传递了一个真正的函数,该函数又调用alert()
。由于它是一个函数,因此可以将其注册为事件处理程序。
关于javascript - JS 函数包装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15077931/