我想将一个 jQuery 函数调用到一个 jQuery 插件中,它的名称是一个字符串,它的参数是一个对象(数组)。 我正在寻找一种与 jQuery 中的 JavaScript“应用”功能等效的功能。
我必须找到一个解决方法,但它真的很脏而且有局限性。在这里:
//funcName is the name of the function I want to call
//funcArgs is an Array of arguments
//$(this) is a jQuery element
switch(funcArgs.length) {
case 1:
$.fn[funcName] && $(this)[funcName](funcArgs[0]);
break;
case 2:
$.fn[funcName] && $(this)[funcName](funcArgs[0], funcArgs[1]);
break;
//...
default:
$.fn[funcName] && $(this)[funcName]();
}
你能帮我把它设为无限吗? (没有任何开关...)
非常感谢,
最佳答案
jQuery 是一个库,而不是一种语言。您使用的语言是 JavaScript,因此 apply
正是您想要的:
var $this = $(this);
$this[funcName].apply($this, funcArgs);
或者
$.fn[funcName].apply($(this), funcArgs);
...因为 $.fn
是底层 jQuery 实例的原型(prototype)。
关于javascript - jQuery 函数作为一个字符串,参数作为数组(JavaScript "apply()"等同于 jQuery 元素),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21210536/