2

3 つの div があります。div をクリックすると、jQuery スクリプトによってクラスが追加されます。

.red{ background-color: red; }

私がやりたいのは、jQueryを変更して、一度. redクラスが追加され、次回は 、 などが追加.blue.red.blueます...

このデモで使用できるスクリプトは次のとおりです。

var $a = $('.box');
$a.click(function(){

        $(this).addClass('red');
});

これ以上共有できなくて申し訳ありませんが、私の恐ろしい試みは混乱を招くだけです.

私は自分自身を明確にしたことを願っています, そうでない場合は質問してください!!

前もって感謝します!!

アップデート:

質問が十分に明確ではなかったと思うので、さらに説明しようと思います。

基本的に必要なのは3つのdivで、最初のクリックでクリックされたdivがredに変わり、2回目でクリックされたものがblueに変わり、赤など、トグルする必要があります(最初のクリックでクリックすると赤または青に変わります)カウントされる唯一のものです)

4

1 に答える 1

7

編集:以下のコメントに基づいて、クリックされた後続の項目ごとに色を交互に変更したいように聞こえますが、元に戻すことはできません。

これはそれを行う必要があります:

例: http://jsfiddle.net/patrick_dw/zUdWq/

$('a').click((function() {
    var i = 0;
    var colors = ['blue','red'];
    return function() {
        $(this).addClass( colors[i = ++i % 2] ).unbind('click');
    };
})());

これはクロージャを使用して変数をラップします。あなたがそれを望まない/必要としない場合は、クロージャーなしで同じことを次に示します。

例: http://jsfiddle.net/patrick_dw/zUdWq/1/

var i = 0;
var colors = ['blue','red'];

$('a').click(function() {
    $(this).addClass( colors[i = ++i % 2] ).unbind('click');
});

元の答え:

$a.addClass('red').click(function(){
    $(this).toggleClass('red blue');
});

これはred、ページの読み込み時にクラスを追加することから始まり、その後、クリックするたびにトグルredblueます。

アイテムにクラスを付けずに開始したい場合は、次のようにすることができます。

$a.click(function(){
    if( !this.className ) {
        this.className = 'red';
    } else {
        $(this).toggleClass('red blue');
    }
});
于 2010-12-17T21:19:56.567 に答える