これは非常に単純化された例です。
関数名「show」または「hide」をパラメーターとして渡そうとしています。
しかし、うまくいきません。助けていただけますか?
if(a==true){
showOrhide (hide);
}else{
showOrhide (show);
}
var showOrhide = function(doThis){
$("#myDiv").doThis();
};
これは非常に単純化された例です。
関数名「show」または「hide」をパラメーターとして渡そうとしています。
しかし、うまくいきません。助けていただけますか?
if(a==true){
showOrhide (hide);
}else{
showOrhide (show);
}
var showOrhide = function(doThis){
$("#myDiv").doThis();
};
次のように機能します。
var showOrhide = function(doThis) {
$("#myDiv")[doThis]();
};
if(a) {
showOrhide('hide');
} else {
showOrhide('show');
}
しかし、それでも非常に醜いです。jQueryには、toggle()
より適切なブール引数を受け入れるメソッドがあります。
$("#myDiv").toggle(!a);
パスshow
とhide
関数のみが必要な場合は、それらの名前のみを渡して、その方法で呼び出すことができます。
if(a==true){
showOrhide ('hide');
}else{
showOrhide ('show');
}
function showOrhide (doThis){
$("#myDiv")[doThis]();
};
免責事項:評価は悪です(コメントを引用)。自己責任でご利用ください。次の回答は、知識を目的としたものです。:-)
別の方法として、eval を使用します。
var showOrhide = function(doThis){
eval("$('#myDiv')." + doThis + "()");
};
if(false==true){
showOrhide ('hide');
}else{
showOrhide ('show');
}