2012-01-09 15 views
0

私は一連のボタンを持っています。それらをA、B、Cと呼ぶことができます。これらのボタンにトグルメソッドを添付しました。 Aをクリックすると、情報を含むdivが表示されます。私がもう一度Aをクリックすると、このdivは削除されます。 Bをクリックすると、Aに関連するdivが削除されます(まだ開いている場合).Bに関連する新しいdivが表示されます。これは、多くのウェブサイトで見られる基本的なトグルです。2回のクリックを必要とするトグル機能

しかし、Aを、次にBを、そしてAをもう一度クリックすると、Aは2回のクリックでそのdivを表示します。これは、トグル内の2番目の機能がまだキューに入っているためにトリガーされるためです。

このコードを見てください。デモのためにボタンのテキストを変更しています。 2回のクリックを取ってからそれを防ぐために、どのように

http://jsfiddle.net/BxFqf/

答えて

0

ボタンにクリックイベントをバインドし、トグルを使用する代わりにそれに応じてテントを変更する必要があります。私は.each()を使用します。

+0

こんにちは、応答ありがとうございます。 .each()がクラスと組み合わさってトリックを行いました。 – Sparda

0

あなたはそのようなtoggleの「ナイーブ」を使用して必要な動作を達成することはできません.toggleあなたがトグルしている項目の状態を維持しているためだと異なるボタンの状態が

0

に関連していません。あなたがする必要があるのは、各ボタンの状態を「覚えている」ため、クリックしたときにそれに応じて反応することができます。反応はほとんどの場合スタイルを適用する必要があるため、HTMLクラスを使用すると状態を覚えておくことができます(スタ゗リングにクラスを再利用できます)。

hereの例を参照してください。

+0

ありがとう、しかし、私はいくつかのHTMLを追加することを含むクラスの単純な変更で必要なものを達成することはできません。あなたが与えた同じ例を使用して、ボタンのテキストが変わるか、それともCSSスタイル以外のものになるように編集できますか? – Sparda

+0

@Sparda:クリックしたボタンの状態を読み取るのに 'hasClass'を使い、それに基づいて何でもしてください。たとえば、http://jsfiddle.net/eNn6Q/です。 – Jon

+0

ありがとうございました。正確にそれをしました。 – Sparda

関連する問題