有没有办法将jQuery函数作为参数传递?

时间:2011-11-28 18:26:29

标签: javascript jquery

我有一个函数,我想传递一个附加到jQuery原型的自定义jQuery函数:$ .fn。

例如,

$.fn.customFx = function() {
  //do something...    
}

function foo(func1) {
  //do something...
  $(selector).func1();
}

$(document).ready(function() {
  foo($.fn.customFx);
}

这样的事情可能吗?

3 个答案:

答案 0 :(得分:7)

function foo(func1) {
  func1.call( $(selector) );
}

答案 1 :(得分:5)

您可以尝试将函数名称作为字符串传递。试试这个。

$.fn.customFx = function() {
  //do something...    
}

function foo(func1) {
  //do something...
  $(selector)[func1]();
}

$(document).ready(function() {
  foo('customFx');
}

答案 2 :(得分:1)

您必须将函数名称作为字符串传递

$.fn.customFx = function() {
  //do something...    
}

function foo( methodName ) {
  //do something...
  $(selector)[ methodName  ]();
}

$(document).ready(function() {
  foo( "customFx" );
}

或者,您可以使用call / apply函数来调用该函数,但这里的开销很大。