2011-01-21 11 views
1

私はこのようなリンクを持っている:このリンクをクリックしsiyah-STILクラスが記事に追加された場合リンクを2回クリック

function renkDegistir() 
    { 
     $("#cont #main article").addClass("siyah-stil"); 
    } 

<a href="#" onclick="renkDegistir()" title="Yaz ....... 

そして、JSコードを。しかし、リンクが2回目にクリックされた場合、siyah-stilクラスを削除します。

function renkDegistir() 
{ 
    $("#cont #main article").toggleClass("siyah-stil"); 
} 

しかし、私はまた、インラインonclick属性を削除し、jQueryのclick()イベントハンドラへの切り替えをお勧めしたい:要するに

on first click : addClass("siyah-stil"); 
on second click : removeClass("siyah-stil"); 

答えて

7

toggleClass()を使用してみてください

$('a').click(
    function(){ 
     $("#cont #main article").toggleClass("siyah-stil"); 
    }); 

Erayさんのコメント(下記)@対処するための編集

あなたはなぜjQueryのclick()機能、私の[に]説明することができますは、インラインonclick属性よりも良いですか[]?

私が非インラインコードを使用する理由は、onClickイベントの変更の複雑さを軽減するためです。 a(またはその他の)要素のonclick属性を変更するのではなく、のいずれかがに変更されているためです。確かに、あなたはは、単にrenkDegistir()関数を変更することによってその利益を達成することができますが、関数の本来の性質ではなく、後世の名前の関数になります。

また、他の人が引き継ぎ、コードを修正したり、バグが発生したときに簡単に修正したりすることも容易になります。

+0

@Eray:我々は適切にあなたを助けることができるように、あなたはおそらく、あなたの質問に他の情報を追加する必要があります... –

+0

はあなたにデビッドありがとう。 jQueryのclick()がインラインonclick attrよりも優れている理由を教えてください。 – Eray

+0

@Eray:私は、**私は** jQueryの 'クリック'ハンドラを使用することを好むいくつかの理由を与えました。 –

関連する問題