別の関数をパラメーターとして受け取る関数を作成し、次のように要素でこの関数を呼び出したいと思います。
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]();
};
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加