1

为什么这不起作用:

$(document).on('click','a',myFunction);
var myFunction = function() {
   debugger;
}

当这样做时:

$(document).on('click','a',function() {
   debugger;
}

我已经开始通过命名我所有的匿名函数并将它们分解成各自独立的命名函数来了解更多信息。

4

2 回答 2

4

您必须交换行:

var myFunction = function() {
   debugger;
}
$(document).on('click','a', myFunction);

否则,您将分配undefined为事件处理程序,因为myFunction当您将变量传递给.on.

另外:将函数分配给这样的变量不会使其命名,它仍然是一个匿名函数,只是存储在一个变量中。命名函数将是:

var myFunction = function someName() {
    debugger;
}

有关详细信息,请参阅揭秘的命名函数表达式。

于 2013-04-01T19:03:29.380 回答
0

而不是说:

var myFunction = function() {
   debugger;
}

你需要说:

function myFunction() {
   debugger;
}

这将在第一次传递时声明该函数,以便在程序执行期间可以引用它。

于 2013-04-02T13:53:44.953 回答