为什么这样做:
$("#oneButton").click(function () {
alert("hello");
});
但这不起作用?
$("#oneButton").click(
alert("hello");
);
答案 0 :(得分:3)
匿名函数路由提供了一个稍后执行的函数。第二个例子只是立即执行代码 ,永远不会等待点击事件发生。
$.fn.click
方法希望代表您调用函数,该函数将处理将来的单击事件。如果你给它一个数字,或一个字符串,或undefined
,它将什么都不做。
alert
函数返回undefined
,所以你的第二个例子只不过是:
$("#oneButton").click(undefined);
请注意,您不需要使用任何函数,在大多数情况下,您可能不应该这样做。您可以使用命名函数,这有助于调试:
function handle ( event ) {
alert( "Clicked" );
}
$("#oneButton").click(handle); // or .click(function handle ( event ) { ... });
在这个例子中,我们将函数引用传递给click事件以作为处理程序。既然jQuery知道我们的函数,它将在#oneButton
上引发click事件时执行它。