【问题标题】:jQuery function as a string with arguments as Array (JavaScript "apply()" equivalent for jQuery elements)jQuery 函数作为字符串,参数为数组(JavaScript “apply()” 等效于 jQuery 元素)
【发布时间】:2014-02-08 05:42:21
【问题描述】:

我想在一个 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]();
}

你能帮我把它设为无限吗? (无需任何开关...)

非常感谢,

【问题讨论】:

    标签: javascript jquery function arguments


    【解决方案1】:

    jQuery 是一个,而不是一种语言。您使用的语言是 JavaScript,因此 apply 正是您想要的:

    var $this = $(this);
    $this[funcName].apply($this, funcArgs);
    

    或者

    $.fn[funcName].apply($(this), funcArgs);
    

    ...因为 $.fn 是 jQuery 实例的原型。

    【讨论】:

    • 我的帖子不够清晰。我知道 jQuery 是一种库,而 JavaScript 是一种语言,但我不知道如何使用“应用”。你完美地回答了我!非常感谢。
    • @Corentin:很高兴!
    猜你喜欢
    • 2019-01-07
    • 2011-06-26
    • 1970-01-01
    • 2020-10-13
    • 2011-06-30
    • 2013-06-30
    • 1970-01-01
    • 1970-01-01
    • 2011-04-28
    相关资源
    最近更新 更多