javascript - jQuery 函数作为一个字符串,参数作为数组(JavaScript "apply()"等同于 jQuery 元素)

标签 javascript jquery function arguments

我想将一个 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/

相关文章:

javascript - 为什么 $(document).on(..) 可以放在页面上的任何位置,而 $ (".cl").on(..) 必须放在 $(document).ready 回调中或 <body> 之后?

javascript - JQuery 脚本错误

javascript - Ajax.beginForms MVC 部分 View

javascript - 为什么此 jQuery 代码仅适用于一次迭代?

java - 不同表的 hql 请求

javascript - 日期选择器不允许今天的日期作为接受

javascript - 如何将重复查询合并到 javascript/jquery 中的一个函数

jquery - 调用jquery函数onclick事件

javascript - jQuery UI 的小部件 "destroy"方法 - 不一致错误

c - C 函数调用中的默认参数提升