1

文字列で関数/メソッド名を呼び出す方法がJavascriptにあるかどうか疑問に思っていましたか?

シナリオ、ターゲットにエフェクトを実行するjQueryを少し記述します。このエフェクトをダイナミック(ユーザーが変更可能)にしたいのですが。

私は、理想的には私は次のようなものを探していると思いますjQuery('target').Effect('slideDown','slow');

switch(vEffect){ case 'slideDown': jQuery().slideDown(); break; }または、同じ結果を生成する可能性のあるものなら何でも、私には冗長に見えるようないくつかの圧倒的なSwitchステートメントを用意する必要はありません...

4

1 に答える 1

6

プロパティ構文を使用して、メソッドを参照できます。

jQuery('target')['slideDown']('slow');

または、変数に含まれている場合:

var methodName = 'slideDown';
jQuery('target')[methodName]('slow');

effectまた、必要に応じてパラメーターを取得し、上記の手法を使用して実際のメソッドを呼び出す、という独自のjQueryプラグインを作成することもできます。

jQuery.fn.effect = function(methodName, speed) {
    return this[methodName](speed);
}

これを次のように呼び出すことができます。

jQuery('target').effect('slideDown', 'slow);
于 2012-09-30T16:59:18.170 に答える