用于拖放的jQuery计数

时间:2011-11-18 03:13:28

标签: jquery drag-and-drop count

我正在使用下面的jsfiddle

http://jsfiddle.net/hP3jc/

我需要以某种方式弄清楚一个计数器,告诉我在下面哪些灰色框上放置了多少/哪些红色块(因为灰色框将代表一个值)

非常感谢任何帮助/输入!


更新:http://jsfiddle.net/hP3jc/1/(包括一个示例计数器模板,用于计数增加1并向下减1.我现在只需要编码。

1 个答案:

答案 0 :(得分:1)

好的,我现在有部分内容。

        $('.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");
});

我认为上述情况虽然未经测试,但应该有效。

这有道理吗?

修改

将此添加到您的.draggable({代码中以获取红色框的类。这是代码应从所有.selector框中删除该类的地方。

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

编辑2

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

这将向您展示如何选择部分名称。

所以$("div[class^="selector"].optionX").each....

非常未经测试,但看起来很近