据我所知,在jquery中,当一个方法需要一个函数作为参数时,你不能只调用这样的预定义函数:
$('#target').click(myFunction());
...因为“myFunction()”将被解析并替换为函数返回的值...它不再是函数。您必须将整个函数定义放在匿名函数中:
$('#target').click(function() {
alert('Handler for .click() called.');
});
...那么,有没有办法只调用函数作为参数?
答案 0 :(得分:4)
你理解正确。不仅在jQuery中,这是JavaScript的工作原理。当需要一个函数作为参数时,你必须给一个函数作为参数,而不是它的调用结果。你可以用这个:
$('#target').click(myFunction);
但是对于警报,你需要一个匿名函数,因为你传递了一个参数。
答案 1 :(得分:2)