有没有办法调用作为参数传递的元素函数?

时间:2014-07-03 18:51:31

标签: javascript jquery

我想创建一个函数,接收另一个函数作为参数,然后在一个元素中调用此函数,如下所示:

 function applyFunctionToDivs(function1, function2, function3) {
    $('#div1').function1();
    $('#div2').function2();
    $('#div3').function3();
 };

是否有jQuery / Javascript方式直接执行此操作?

我完成了这个,但创建了这样的附加功能:

    if (value == 'A') {
        applyFunctionToDivs(showElement, hideElement, hideElement);
    }

    if (value == 'B') {
        applyFunctionToDivs( hideElement,showElement, hideElement);
    }

    if (value == 'C') {
        applyFunctionToDivs(hideElement, hideElement, showElement);
    }

我的显示/隐藏功能:

function showElement(elem) {
    elem.show();
};

function hideElement(elem) {
    elem.hide();
};

function applyFunctionToDivs(fun1, fun2, fun3) {
    fun1($('#div1'));
    fun2($('#div2'));
    fun3($('#div3'));
};

我认为这可以优化。有没有建议直接这样做?

1 个答案:

答案 0 :(得分:2)

https://stackoverflow.com/a/11356926/252671,您可以执行以下操作:

$("body")['function']()

所以你可以做以下事情但是可以进一步重构以使参数成为一个数组并循环遍历数组。

 function applyFunctionToDivs(function1, function2, function3) {
    $('#div1')[function1]();
    $('#div1')[function2]();
    $('#div1')[function3]();
 };