JQuery плагин равной высоты добавления поля - PullRequest
3 голосов
/ 24 октября 2011

Как бы я добавил к коду ниже, чтобы разобраться, есть ли у DIV какие-либо поля-вершины / края-дна?Ситуация, с которой я столкнулся на данный момент, заключается в том, что у меня есть 2 столбца (DIV), у 1 есть поле margin-top, а у другого нет, что приводит к неправильному выравниванию столбцов.

Извините, код был уменьшени я потерял оригинал.

$.fn.equalHeight = function (a) {
    var b = {
        delay: 100,
        minusHeight: 0
    };
    var a = $.extend(b, a);
    var c = 0;
    var d = 0;
    var e = $(this);
    setTimeout(function () {
        e.each(function () {
            c = $(this).outerHeight();
            d = c > d ? c : d
        });
        return e.each(function () {
            var b = $(this);
            var c = d - (b.outerHeight() - b.height()) - a.minusHeight;
            var e = jQuery.browser.msie && jQuery.browser.version < 7 ? "height" : "min-height";
            b.css(e, c + "px")
        })
    }, a.delay)
};

Ответы [ 2 ]

2 голосов
/ 29 октября 2011

Вы должны добавить true в качестве параметра к .outerHeight(), чтобы он включал маржу в расчеты.

Но есть еще одна проблема с вашим кодом ... Вы не может вернуть что-либо из тайм-аута, и вы, кажется, поместили туда свой код возврата ..

Это означает, что вы нарушаете систему сцепления jQuery ..

Ваш коддолжно быть

$.fn.equalHeight = function(a) {
    var b = {
        delay: 100,
        minusHeight: 0
    };
    var a = $.extend(b, a);
    var c = 0;
    var d = 0;

    this.each(function() {
        c = $(this).outerHeight(true);
        d = c > d ? c : d;
    });
    return this.each(function() {
        var b = $(this);
        var c = d - (b.outerHeight(true) - b.height()) - a.minusHeight;
        var e = (jQuery.browser.msie && jQuery.browser.version < 7) ? "height" : "min-height";
        setTimeout( function(){
            b.css(e, c + "px");
        }, a.delay);
    });
};

Демо на http://jsfiddle.net/gaby/DXHtk/

1 голос
/ 28 октября 2011

Вы можете проверить div для полей, используя функцию jQuery css().К сожалению, сокращенные свойства CSS, такие как margin, не поддерживаются, и вам придется делать это в виде css('marginTop'), css('marginBottom') и так далее.Затем вы можете условно изменить каждый div, чтобы он выстроился в линию.

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