在不编写整个函数定义的情况下,在jquery中作为方法参数运行

时间:2011-03-05 17:00:16

标签: jquery function arguments

据我所知,在jquery中,当一个方法需要一个函数作为参数时,你不能只调用这样的预定义函数:

$('#target').click(myFunction());

...因为“myFunction()”将被解析并替换为函数返回的值...它不再是函数。您必须将整个函数定义放在匿名函数中:

$('#target').click(function() {
   alert('Handler for .click() called.');
});

...那么,有没有办法只调用函数作为参数?

2 个答案:

答案 0 :(得分:4)

你理解正确。不仅在jQuery中,这是JavaScript的工作原理。当需要一个函数作为参数时,你必须给一个函数作为参数,而不是它的调用结果。你可以用这个:

$('#target').click(myFunction);

但是对于警报,你需要一个匿名函数,因为你传递了一个参数。

答案 1 :(得分:2)

您传递的是函数的结果,而不是函数本身。而不是:

click(myFunction());

使用

click(myFunction);

直播example on jsfiddle