ОК, у меня есть часть этого сейчас.
$('.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....
очень непроверено, но выглядит близко