【发布时间】:2012-10-20 06:02:15
【问题描述】:
我有这样的功能:
function foo(canvas) {
canvas.mousedown(function(e) {
console.log(canvas); //undefined
});
}
我在页面的某个位置单击鼠标时调用 foo。
为什么画布未定义?
【问题讨论】:
-
你给
foo传递了一个参数吗? -
嗯...是的,jsfiddle 有效。我的代码更复杂,看看还有什么可能导致问题...
-
canvas应该从不在回调中评估为 undefined。canvas变量 不能 在提供的代码中重新分配(对象被变异是另一回事),并且 那个特定的console.log只有在 @987654327 时才会运行@ 是有效的(这意味着canvas不是未定义)。因此,我称之为恶作剧。报告的行为要么是错误的,要么不是全部。 -
@TML 和其他人:在 FF 中对我来说效果很好。它有助于在画布上设置背景颜色,这样你就可以看到该死的东西!
-
在 Win32 上的 Chrome 和 Firefox 中对我来说都很好。您使用的是哪个版本的 Chrome?你真的点击了画布吗? SnagIt Screenshot of Chrome result
标签: javascript jquery variables closures