2013-06-01 83 views
1

我有这样的功能:使用Javascript - 参数传递给非匿名函数

$("#btn").click(function(e,someOtherArguments) 
    { //some code 
    e.stopPropagation();}); 

它的工作原理,但如果我有命名的功能,我不能使用e,因为它是不确定的。

var namedFunction= function(e,someOtherArguments) 
{ 
//some code 
    e.stopPropagation(); 
} 
$("#btn").click(namedFunction(e,someOtherArguments)); 

我想因为有几个按钮,用它来使用这个namedFunction

回答

5

或者:

$("#btn").click(namedFunction); 

或者:

$("#btn").click(function(e,someOtherArguments){ 

    namedFunction(e, someOtherArguments); 

}); 
+3

+1。除此之外,@impeRAtoR,如果你说'$(“#btn”)。click(anyFunction)'jQuery将会调用'anyFunction()'它带有_wants_要传递的参数的数量,而不是你可能或者可能没有声明'anyFunction()'来接受。 (事实上​​,在JS中,函数不需要显式声明命名参数,因为它可以通过'arguments'对象访问它们。) – nnnnnn

0

您可以直接调用该函数在点击事件

$("#btn").click(function(e,someOtherArguments){ 
    namedFunction(e, someOtherArguments); 

}); 
0

您可以使用apply像这样:

$("#btn").click(function(e,someOtherArguments){ 
    namedFunction.apply(this, arguments); 
}); 
相关问题