有没有一种方法可以调用作为参数传递的元素的函数?

Is there a way to call an element's function passed as parameter?

本文关键字:参数传递 元素 函数 调用 一种 方法 有没有      更新时间:2023-09-26

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

 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'));
};

我认为这可以优化。有什么直接做的建议吗?

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

$("body")['function']()
因此,您可以执行以下操作,但可以进一步重构该参数,使其成为数组并循环遍历数组。
 function applyFunctionToDivs(function1, function2, function3) {
    $('#div1')[function1]();
    $('#div1')[function2]();
    $('#div1')[function3]();
 };