0

考虑以下两个代码示例:

// Example 1
$('#myButton').click(function() {
    alert('I was clicked');
});

// Example 2
$('#myButton').click(
    alert('I was clicked');
);

为什么具体示例 2 不起作用?

4

1 回答 1

4

您的第二个代码片段不起作用,因为它调用对象的alert()方法window(返回undefined),并将它返回的值(因此,undefined)作为处理程序传递给 jQuery 对象的click()方法。

undefined不是一个有效的事件处理程序,所以click()忽略它并且什么都不做(除了可能在控制台中记录错误,具体取决于您的浏览器)。

您的第一个代码片段传递了一个真正的函数,该函数反过来调用alert(). 由于它是一个函数,因此可以将其注册为事件处理程序。

于 2013-02-25T22:44:23.457 回答