jQuery:使用预定义函数添加更改事件处理程序

Dar*_*ein 2 javascript jquery onchange

所以我有以下内容:

var change_handler = function(element) {
    // ... do some fancy stuff ...
}
Run Code Online (Sandbox Code Playgroud)

现在,我想将它附加到一个元素.哪种方法更好/更好或更正确?

$('element_selector').change(change_handler(this));
Run Code Online (Sandbox Code Playgroud)

要么...

$('element_selector').change(function() { change_handler(this); });
Run Code Online (Sandbox Code Playgroud)

如果你将对象传递给函数,它会有什么不同吗?

Qui*_*son 5

无论..

$('element_selector').change(change_handler);
Run Code Online (Sandbox Code Playgroud)

change_handler 将是指向该方法的指针,该元素的参数已经由jQuery传递

如果你使用$('element_selector').change(change_handler(this));它实际上不会分配方法作为处理程序而运行的方法,并试图将结果作为分配的处理器,其他的选项是多余的,因为你可以在上面,而不是重新描述使用的方法名称包装方法.