维护可排序列表中的项目数

时间:2014-08-10 15:33:51

标签: jquery jquery-ui jquery-ui-sortable jquery-droppable

我需要在某些可排序的列表中维护项目的确切数量,并且我很难做到这一点。我从列表#1开始拖动计数递增的那一刻,从那时起有一个额外的项目在播放。当我将鼠标悬停在列表#2上时,它会增加计数。

Example, click for fiddle:

$(function () {
    $("#ul1, #ul2").sortable({
        connectWith: ".connectedSortable"
    }).disableSelection();
  });

function update_counts() {
    var n_ul1 = $("#ul1 li").length;
    var n_ul2 = $("#ul2 li").length;
    $("#count1").html(n_ul1);
    $("#count2").html(n_ul2);
}

$(function () {
    $("#ul2,#ul1").droppable({
        over: function (ev, ui) {
            update_counts();
        },
        drop: function (ev, ui) {
            update_counts();
        }
    }).disableSelection();
});

1 个答案:

答案 0 :(得分:0)

我将回答我自己的问题:

function update_counts() {
    var n_ul1 = $("#ul1 li").not(".ui-sortable-helper").length;
    var n_ul2 = $("#ul2 li").not(".ui-sortable-helper").length;
    $("#count1").html(n_ul1);
    $("#count2").html(n_ul2);
}

.not(" .ui-sortable-helper")是我们所需要的。