在javascript中为事件分配函数

时间:2016-06-13 13:07:12

标签: javascript

我对下拉列表的onchange事件有疑问。 我一直在做一些阅读,发现处理变更事件的首选方法是:

select.onchange = function(){animateMarker()};

我只是想知道为什么它不能只是:

select.onchange = animateMarker();

animateMarker()之前的函数()是做什么的?

感谢。

2 个答案:

答案 0 :(得分:3)

你可以这样做:

select.onchange = animateMarker;

添加()会立即执行该功能,删除它们意味着您将该功能分配给事件处理程序,以便最终执行该功能。

回答最后一部分:包含animateMarker的函数(){}是不必要的,它只是一个匿名函数,在调用它时执行animateMarker函数。

答案 1 :(得分:0)

正如@mrwillihog所说,您可以直接使用它的定义select.onchange = animateMarker;来指定它,但是建议使用包装函数是明智的,因为这样做可以稍后添加更多函数插入包装函数中的onchange事件。否则你只会被animateMarker事件限制......或者......你可能需要重新定义animateMarker并做一些丑陋的猴子补丁。因此,最好使用包装函数。