1

私はいくつかのコードをいじっています(@JohnieHjelmに感謝します!)ボタンを切り替えるために見つけました。私はそれを必要最小限に減らし、私のページに含めました。1つのボタンでうまくいきました。複数のボタンがある場合に問題が発生します。前のリンクでわかるように、見た目は問題ありませんが、問題が発生します。

<div id = 'settings'>
  <p>
    Links: 
    <span class = 'onoff on'>ON</span>
    <span class = 'onoff'>OFF</span>
    </p><br />
  <p>
    Chapters: 
    <span class = 'onoff on'>ON</span>
    <span class = 'onoff'>OFF</span>
  </p>
</div>

$(function(){
    $('#settings .onoff').click(function(){
        $('#settings .onoff').removeClass("on");
        $(this).addClass("on"); 
    });
});

トグルボタンは最初は問題ないように見えます。

トグルボタンは最初は大丈夫に見えます

しかし、クリックすると、すべてがうまくいきません。

クリックすると、すべてがうまくいかない

これで、2番目のボタン'onoffb'を呼び出して、新しいクラス(またはid)に対して$(function())ビット全体を繰り返すことができることがわかりました。2つまたは3つのボタンでも機能する可能性がありますが、このようなボタンが10個以上ある場合は、そのコードの束を繰り返すことはまったく望ましくありません。

私はまだjavascriptが得意ではなく、この問題を解決する方法を見つけることができません。何を調べればいいですか?この特定の問題を探し続ける場所についてのポインタが必要です。各ボタンにIDを追加し、どういうわけかjqueryからIDを取得してそれだけを変更することを考えていますが、とにかくそれを行うことができませんでした。

4

3 に答える 3

1

次のコードでうまくいくはずです。

$(function(){
    $('#settings .onoff').click(function(){
        $(this).siblings().removeClass("on");
        $(this).addClass("on"); 
    });
});

問題は、兄弟(同じコンテナ内のボタン)のみが必要なときに、すべての.onoffボタンを選択していたことでした。$("#settings .onoff)

ここで私のjsfiddleを参照してください:http://jsfiddle.net/KwKjd/4/

于 2013-03-15T18:27:06.273 に答える
1

これは些細なことかもしれませんし、あなたが何を求めているのかわからないので質問に答えられないかもしれませんが、javascriptでメソッドを作成し、いくつかのボタンパラメータを設定することはできません。

一種の(擬似コード)

function onoff(var Numberofbuttons)
{
Insert code here
}

したがって、x個のボタンを作成したい場合は、forループを使用できますか?

(C#の観点から)

于 2013-03-15T18:27:47.923 に答える
1

あなたが学びたいように聞こえ、答えを与える代わりにただ指摘されるという理由だけで、特定のクラスの代わりに「これ」を使用することを検討してください。

これは、「これがクリックされたら、これをオン/オフなどに設定します」と言うことです...

于 2013-03-15T18:31:03.117 に答える