在jQuery中绑定现有的JavaScript函数

Jac*_*lls 21 javascript jquery event-handling

使用jQuery我想将现有函数绑定到按钮.我已经浏览了文档并找到了bind方法,但是jQuery上的示例绑定了新创建的函数,因为我想绑定一个已经硬编码的函数,例如:

function fHardCodedFunction(){
   //Do stuff
}

function fBindFunctionToElement(){
   $("#MyButton").bind("click", fHardCodedFunction());
}
Run Code Online (Sandbox Code Playgroud)


这可能吗?或者我是以错误的方式来做这件事的?

Gum*_*mbo 34

plain fHardCodedFunction已经引用了函数,后缀()只是调用它.所以只需传递函数而不是调用它,从而只传递返回值:

function fBindFunctionToElement(){
   $("#MyButton").bind("click", fHardCodedFunction);
}
Run Code Online (Sandbox Code Playgroud)

  • @Jack Mills:然后你需要使用一个(匿名)包装函数,比如`function(){return fHardCodedFunction("foo","bar"); 你作为回调函数传递给`bind`. (10认同)
  • 如果我需要传递硬编码函数参数怎么办? (3认同)