事件声明中是否需要'function()'?

时间:2019-08-19 13:02:02

标签: javascript jquery

我有两个脚本:

<script src="../js/createopp.min.js"></script>
<script src="../js/validation.min.js"></script>

以下一行在第一个脚本中,在另一个脚本中调用一个函数:

$('#places').blur(function(){checkPlacesAvailable()});

如果我将其重写为

$('#places').blur(checkPlacesAvailable());

该函数出现“未定义”错误。但是我看到许多使用第二种格式的示例。在我的情况下,是否有明显的阻止第二个版本运行的东西?

2 个答案:

答案 0 :(得分:2)

您应该将函数引用传递给这样的事件处理程序。

$('#places').blur(function(){checkPlacesAvailable()});

“等于”于此

$('#places').blur(checkPlacesAvailable);

请注意,由于范围和其他原因,它并不完全相同,但是在大多数情况下,您可以通过第二种方式传递它

答案 1 :(得分:1)

此代码:

$('#places').blur(checkPlacesAvailable());

立即启动功能。如果您不想编写“函数”,可以这样做:

$('#places').blur(() => checkPlacesAvailable());