0

事前にこの質問をご覧いただきありがとうございます。

大学で行っているプロジェクトにjQueryのドラッグアンドドロップを使用しており、各ドロップをカウントして、各ドロップに追加されるクラスを変更しようとしています。

jQueryは次のとおりです。

$('#droppableChoking').droppable({
    drop: function (event, ui) {
        //reuse jQuery object
        var $this = $(this);

        //get object type
        var droppedObject = ui.draggable.data('object');

        //css reset
        $this.removeClass();
        $this.addClass("grape" + droppedObject);
        }

        //play drop sound
        audioClap.play();
    }
});

ループを実行し、カウントの値をクラスに追加して毎回変更しようとしましたが、何か間違っています!

4

2 に答える 2

1

次のようなものを試してください。

var drop_count = 0;

$('#droppableChoking').droppable({
    drop: function (event, ui) {
        //reuse jQuery object
        var $this = $(this);

        //get object type
        var droppedObject = ui.draggable.data('object');

        //css reset
        $this.removeClass();
        $this.addClass("grape_" + drop_count);
        drop_count++;

        //play drop sound
        audioClap.play();
    }
});
于 2013-01-11T18:33:37.023 に答える
0

http://api.jquery.com/removeClass/ removeClassでは、一致する各要素のクラス属性から1つ以上のスペースで区切られたクラスを削除する必要があります。

したがって、それを念頭に置いて、removeClassを呼び出しても何も削除されない可能性があります。クラスをクリアしたい場合は、$this.attr('class', '')

カウンターに関しては、これが私の更新されたJSです:

    var counter = 0;

    $('#droppableChoking').droppable({
            drop: function (event, ui) {
                ++counter;

                //reuse jQuery object
                var $this = $(this);
                //get object type
                var droppedObject = ui.draggable.data('object');
                //css reset
                $this.attr('class', '');
                $this.addClass("grape" + droppedObject);

                // what to do with counter?  not sure.  Whatever you want.  I'm setting text.  Not sure how you want to use it for the class.
                $this.text(counter);
                }
                //play drop sound
                audioClap.play();
            }
        });
于 2013-01-11T18:32:55.673 に答える