jQuery .click()函数自动调用

Ila*_*ala 0 javascript jquery event-listener jquery-click-event jquery-events

我使用jQuery在按钮上设置了一个事件监听器,由于某种原因,在没有单击按钮的情况下调用click监听器中的函数.我知道通常函数在侦听器中是匿名的,但它不能用作匿名函数.我调用的函数也必须接受参数,这就是为什么我认为我不能只调用函数的引用.关于如何解决函数问题的任何想法,如果没有点击甚至注册,仍然将必要的参数传递给函数?

$('#keep-both').click(keepBothFiles(file, progress, audioSrc));
Run Code Online (Sandbox Code Playgroud)

调用此功能

function keepBothFiles(file, progress, audioSrc) {
    ...
    ...
}
Run Code Online (Sandbox Code Playgroud)

THE*_*had 11

您错误地引用了该功能.试试这个:

$('#keep-both').click(function(){
  keepBothFiles(file, progress, audioSrc);
});
Run Code Online (Sandbox Code Playgroud)

无论何时使用语法funcName(),()都要告诉解释器立即调用该函数.该.click方法要求您传递对函数的引用.函数引用仅按名称传递.你也可以这样做:

$('#keep-both').click(keepBothFiles);
Run Code Online (Sandbox Code Playgroud)

但你无法将其他论点传递给它.默认情况下,它被赋予一个事件对象