Функция не работает при $(window).resize(). В чём ошибка?

Здравствуйте!

Итак, есть классическая функция, которая уравнивает высоту двух колонок:
function setEqualHeight(columns)
{var tallestcolumn = 0;
columns.each(
function(){
currentHeight = $(this).height();
if(currentHeight > tallestcolumn)
{tallestcolumn = currentHeight;}});
columns.height(tallestcolumn);}


При открытии страницы, функция отрабатывает отлично:

$(document).ready(function() {
    setEqualHeight($(".b-container > div"));});

$(window).resize(function () {
	setEqualHeight($(".b-container > div"));});


Но при ресайзе страницы (при изменении высоты одной из колонок) функция не работает. При тестировании было выявлено, что проблема в самой функции setEqualHeight.

Поскольку я junior в javascript, не могу понять в чём проблема. Подскажите пожалуйста!
  • Вопрос задан
  • 7051 просмотр
Пригласить эксперта
Ответы на вопрос 4
попробуйте добавить columns.removeAttr('style'); перед проходом цикла. Не таботает так-как первый раз цикл прогоняет колонки, и принудительно ставит высоту. Второй раз проганяя цикл, высота уже у всех одинаковая (в инлайн-стилях жестко прописана высота)
А для тестирования используйте хотябы console.log(). В данном случае проверять в каждой итерации значение tallestcolumn уже бы дало понять в чем проблемма
Ответ написан
Ваш код сложно читать, попробуйте придерживаться стандартов.
https://github.com/airbnb/javascript
learn.javascript.ru/coding-style
Ответ написан
Комментировать
vmpartner
@vmpartner
In code we trust
escalade
@escalade Автор вопроса
@rezzzet дело в том, что это классический скрипт создания колонок одинаковой высоты.
код взял вот отсюда: habrahabr.ru/post/64173/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы