2016-11-29 6 views
-1

複数の関数の複数のIDのコードに$("#id").addClass('disabled');$("#li-hzd").removeClass('disabled');のコードを繰り返しています。だから私はいくつかの一般的な日常的な何か、何かのように呼び出すことができるように、評価なしのjqueryメソッドの実行

function toggleClass(id,classname,action){ 
    $("#"+ id") +"." + classname+"("+action+") 
} 

toggleClass(id,'addClass','disabled'); 
toggleClass(id,'removeClass','disabled'); 

私は(何かがevalのを使用して行うことができると信じを記述しようとしています)が、私もそれが悪い習慣だ読みますevalを使う。だからどのようなアイデアを達成するために?

答えて

2

bracket notationを使用してjQueryメソッドを取得することもできます。

function toggleClass(id, action, classname){ 
    $("#"+ id)[action](classname) 
} 

toggleClass(id,'addClass','disabled'); 
toggleClass(id,'removeClass','disabled'); 
0

あなたがbracket notation[]経由アクセスオブジェクトのプロパティことができます。

function toggleClass(id, classname, action) { 
    $("#" + id)[classname](action) 
} 

サイドノート:あなたはパラメータclassnameaction間違ったの命名を得ているように見えます。もっと感覚的にするために、おそらく他の方法でなければなりません!関数名はactionで、クラス名はclassnameである必要があります。代わりに、addClassとremoveClassを使用しての:-)

0

は、使用がちょうど

ので、次の

function toggleClass(id,classname){ 
    $("#"+ id).toggleClass(classname) 
} 
にごtoggleclass方法を変更する他に存在しないが、それを削除する場合は、クラス名を追加toggleClassを使用することができます
関連する問題