JQuery рассчитывать для перетаскивания - PullRequest
1 голос
/ 18 ноября 2011

Я использую jsfiddle ниже

http://jsfiddle.net/hP3jc/

Мне нужно как-то вычислить счетчик, чтобы сказать мне, сколько / какие красные блоки помещены в какие серые прямоугольники ниже (так как серые прямоугольники будут представлять значение)

Любая помощь / вклад будет высоко ценится!


Обновлено: http://jsfiddle.net/hP3jc/1/ (включает пример шаблона счетчика для счетчика с шагом 1 и уменьшения на 1. Все, что мне нужно, - это кодирование сейчас.

1 Ответ

1 голос
/ 18 ноября 2011

ОК, у меня есть часть этого сейчас.

        $('.selector1, .selector2, .selector3, .selector4, .selector5').droppable({
            hoverClass: 'hovered',
            drop: function (event, ui) {
                $(this).addClass(ui.draggable.attr("class"));
                CountClasses($(this));
            }
        });
    function CountClasses($this) {
        var classes = $this.attr("class").split(" ");
        var count = 0;
        var t = 0;

        for (t = 0; t < classes.length; t++)
        {
            if (classes[t].substring(0, 6) == "option") {
                count++;
            }
        }
        alert(count);
    }

Это должно послужить вам отправной точкой.

Теперь все, что вам нужно сделать, это когда вы поднимаетекрасное поле, удалите его класс из всех полей .selector.Вы можете использовать простой селектор jQuery, чтобы найти все поля селектора с этим классом.

$(".selector.option1").each(function(){
  $(this).removeClass(".option1");
});

Я думаю, что вышеприведенное должно работать, хотя оно и не проверено.

Имеет ли это какой-то смысл?

edit

Добавьте это к своему .draggable({ коду, чтобы получить класс красной рамки.Вот куда должен пойти код, чтобы удалить этот класс из всех блоков .selector.

start: function () {  alert( $(this).attr("class").split(" ")[0]) }

edit 2

http://api.jquery.com/attribute-starts-with-selector/

Thisпоказывает, как выбрать частичное имя.

, поэтому $("div[class^="selector"].optionX").each....

очень непроверено, но выглядит близко

...