jquery可排序,浮动和清除

时间:2011-08-12 16:02:24

标签: jquery css css-float jquery-ui-sortable clear

所以我在这里有一个快速的模型,我想做什么 - http://antimac.meloncreative.co.uk/labs/nth.php

实时版本使用div内的缩略图完成,这些缩略图具有各种宽高比。所以宽度总是100px,但高度可以是任何(或多或少)。

无论如何,因为这个,并使用浮动,有时他们不能很好地适应5在一条线上,有些低于其他人,所以他们或多或少在他们自己的线上,这使它看起来一团糟。

所以... 我如何在排序时制作它,并且在更新时,清除总是很好地每行5个div?目前我正在做的事情

$('#reorder div.x:nth-child(5n)').addClass('clear green');

......不按照我希望的方式工作

编辑:所以我认为问题在于(5n)部分,就像我拖动说第1项,在5和6之间,在拖动过程中第一行缺少2个块,然后当我放下它时,第一行缺少1个。这可能与我正在拖拽的那个人的克隆有关,还在那里回转结果,想法?

2 个答案:

答案 0 :(得分:1)

我认为这没关系。只需确保在x div重新排序后添加类绿色。看这个fiddle。 :eq不识别n,使用:nth-​​child。

$('#reorder').children('div.x:nth-child(5n + 1)').addClass('clear green');

答案 1 :(得分:0)

所以答案似乎是

$('#reorder').sortable({
        placeholder: 'placeholder',
        sort: function(event, ui) {
            $('#reorder div').removeClass('clear green');
            $('#reorder div.x:not(.ui-sortable-helper)').addClass('y');
            $('#reorder div.placeholder').addClass('y');
            $('#reorder div.y:nth-child(5n + 1)').addClass('clear green');
        },
        update: function(event, ui) {
            $('#reorder div.x').removeClass('y');
            $('#reorder div.x').removeClass('clear green');
            $('#reorder div.x:nth-child(5n + 1)').addClass('clear green');
        }
    });
    $('.reorder').disableSelection();
});

问题在于占位符以及从被拖动的地方仍然存在的帮助。