为什么mousedown事件监听器会通过函数运行?

时间:2014-02-16 01:22:55

标签: javascript html function click addeventlistener

我绘制了一个画布,然后使用代码

canvas.addEventListener("mousedown", clicked(event), false);

每当我点击鼠标时,我都会添加一个事件监听器来点击运行。 但是当我在chrome上逐行浏览代码时,它添加事件监听器的那一刻它会自动运行所点击的函数,但我只想让它在我点击时运行该函数。

我做错了吗?

2 个答案:

答案 0 :(得分:0)

canvas.addEventListener(“mousedown”,clicked,false);

答案 1 :(得分:0)

你需要传递函数引用,而不是实际调用它:

canvas.addEventListener("mousedown", clicked, false);

然后,该函数应该像这样定义:

function clicked(event) {
    // code here
}

当您在函数名称后面包含parens时,它会立即执行,并且它的返回值是传递给addEventListener()的值,这可能根本不是您想要的。不要让parens只传递函数参考。