0

これは非常に単純化された例です。

関数名「show」または「hide」をパラメーターとして渡そうとしています。

しかし、うまくいきません。助けていただけますか?

if(a==true){
showOrhide (hide);
}else{
showOrhide (show);
}

var showOrhide = function(doThis){
  $("#myDiv").doThis();
};
4

3 に答える 3

3

次のように機能します。

var showOrhide = function(doThis) {
    $("#myDiv")[doThis]();
};

if(a) {
    showOrhide('hide');
} else {
    showOrhide('show');
}

しかし、それでも非常に醜いです。jQueryには、toggle()より適切なブール引数を受け入れるメソッドがあります。

$("#myDiv").toggle(!a);
于 2013-08-16T12:41:37.297 に答える
0

パスshowhide関数のみが必要な場合は、それらの名前のみを渡して、その方法で呼び出すことができます。

if(a==true){
  showOrhide ('hide');
}else{
  showOrhide ('show');
}

function showOrhide (doThis){
  $("#myDiv")[doThis]();
};
于 2013-08-16T12:41:55.737 に答える
-2

免責事項:評価は悪です(コメントを引用)。自己責任でご利用ください。次の回答は、知識を目的としたものです。:-)

別の方法として、eval を使用します。

var showOrhide = function(doThis){
  eval("$('#myDiv')." + doThis + "()");
};    

if(false==true){
  showOrhide ('hide');
}else{
  showOrhide ('show');
}
于 2013-08-16T12:46:17.993 に答える