Проблема с функцией jQuery - PullRequest
1 голос
/ 13 ноября 2011

Я пытаюсь создать скрипт для размещения элементов внутри контейнера в столбцах.Сценарий работает нормально, пока я не доберусь до 4 столбца.Я не вижу, где я иду не так.Вот код и демо

var container = '.bar',
    children = $(container).children().length,
    column = 4,
    width = $(container).width() / column - 20;

function columnizer(value) {

    var i = 1,
        x = Math.ceil(value / column),
        z = Math.round(value / column),
        y = '<div class="column" />';

    $(container).children().slice(0, x).wrapAll(y);

    while (i < column) {
        if (value % 2 === 0 && z === 1 ) {
            $(container).children().slice(i, x * i).wrapAll(y);
            i++;
        }
        else if (value % 2 === 0 && z > 1) {                
            $(container).children().slice(i, x + i * i).wrapAll(y);
            i++;            
        }
        else {
            $(container).children().slice(i, x + i).wrapAll(y);
            i++;
        }
    }
}

1 Ответ

2 голосов
/ 13 ноября 2011
$(function() {

var container = '.bar',
    children = $(container).children().length,
    column = 4,
    width = $(container).width() / column - 20;

function columnizer(value) {
    var i = 0,
        x = Math.ceil(value / column),
        z = Math.round(value / column),
                y = '<div class="column" />';

    while (i < column ) {   
        $(container).children(':not("div.column")').slice(0, x).wrapAll(y);
        i++;
        }
}

columnizer(children);

$(container).append("<div class='clear'></div>");

$('.column').width(width);

});

Кроме того, измените свои тестовые данные, чтобы они включали число после каждого Lorum или Duis. В противном случае код может выглядеть как работающий, но на самом деле это не так.

Этот метод также работает для любого количества столбцов (а не только для 4 столбцов).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...