我看起来像是一个简单的变量赋值不能正常工作。
此代码在jQuery中,对于上下文,请参阅here。
我在打电话:
$('#foo').on('someEvent', eventHandlerFn);
我在jQuery on
函数中得到了这个问题。这是起点:
正如您在代码下方的控制台中看到的那样,selector
设置为我的eventHandlerFn
,而fn
变量未定义。这是预期的。
在第3509行,selector
的值被归为fn
。因此,fn
的值应与selector
的值相同,不是??
请参阅下文 - selector
已按预期定义,但fn
仍未定义。为什么呢?
最终结果是我的事件处理程序从未注册过。
答案 0 :(得分:2)
代码运行良好,如以下两个屏幕所示(问题在于chrome如何将上下文设置到控制台)
看起来控制台在定义时可以访问变量(在这种情况下是传递的参数)而不是运行代码时的实时值
交换之前
交换后
答案 1 :(得分:1)
我没有看到这个jsFiddle有任何问题。随意编辑jsFiddle,使其看起来更像您的代码。
您可以尝试在3510行之后输入console.log(fn);
并重新运行吗?也许这只是调试器的一个问题?
答案 2 :(得分:1)
这似乎是Chrome中调试器的问题 - 无论是材料问题还是我不理解的调试器的细微差别。 fn在调用结束时确实有一个值,但不是断点所在的值。