Javascript 有没有一种方法可以调用元素';s函数作为参数传递?
我想创建一个函数,接收另一个函数作为参数,然后在元素中调用此函数,如下所示:Javascript 有没有一种方法可以调用元素';s函数作为参数传递?,javascript,jquery,Javascript,Jquery,我想创建一个函数,接收另一个函数作为参数,然后在元素中调用此函数,如下所示: function applyFunctionToDivs(function1, function2, function3) { $('#div1').function1(); $('#div2').function2(); $('#div3').function3(); }; if (value == 'A') { applyFunctionToDivs(showE
function applyFunctionToDivs(function1, function2, function3) {
$('#div1').function1();
$('#div2').function2();
$('#div3').function3();
};
if (value == 'A') {
applyFunctionToDivs(showElement, hideElement, hideElement);
}
if (value == 'B') {
applyFunctionToDivs( hideElement,showElement, hideElement);
}
if (value == 'C') {
applyFunctionToDivs(hideElement, hideElement, showElement);
}
有没有一种jQuery/Javascript方法可以直接做到这一点
我完成了这项工作,但创建了如下附加功能:
function applyFunctionToDivs(function1, function2, function3) {
$('#div1').function1();
$('#div2').function2();
$('#div3').function3();
};
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'));
};
我认为这是可以优化的。有任何直接执行此操作的建议吗?从中,您可以执行以下操作:
$("body")['function']()
因此,您可以执行以下操作,但可以对其进行进一步重构,使参数成为一个数组并在数组中循环
function applyFunctionToDivs(function1, function2, function3) {
$('#div1')[function1]();
$('#div1')[function2]();
$('#div1')[function3]();
};
重复建议的可能重复是指当名称为字符串时如何调用函数,我的问题是如何使用元素调用方法:element.function()您可以将元素存储为单个变量。请使用
开关,而不是创建if/else丛林。