2011-07-06 8 views
1

jQueryで名前を使ってメソッドを呼び出す方法はありますか?たとえば、次のようにjQuery:文字列からメソッドを実行

var condition = true; 
$('div').execute(condition ? 'show':'hide'); 
+1

トグル:-)を使用してください。 – Alex

+0

あなたは何をしようとしていますか?メソッドのディクショナリベースのアクセスを含むより良い解決策はないかもしれません。 – Spycho

答えて

4

はい、(むしろ.を使用してリテラルのものより)jQueryオブジェクトのプロパティにアクセスする[]表記を使用します。

$('div')[condition ? 'show' : 'hide'](); 

あなたはまた、行うことができます。

$('div').toggle(condition); 

http://api.jquery.com/toggle/

編集:あなたは、コードの独自のスタイルを好む念のために、あなたはこれを追加することができます。

$.fn.execute = function(a) { 
    return this[a].apply(this, [].slice.call(arguments, 1)); 
} 

次に、あなたは次のように行うことができます。

$('div').execute(condition ? 'show' : 'hide'); 

または

$('div').execute(condition ? 'keydown' : 'keyup', function() {...}); 
+0

頻繁に使用しますか? – Dziamid

+0

@Dziamid: '.toggle'を使うのは、読むのがはっきりしているからです。 – pimvdb

2

Javascriptオブジェクトは基本的に辞書です。

var condition = true; 
$('div')[condition ? 'show':'hide'](); 
関連する問題