2014-09-21 2 views
0

Я пытаюсь исправить переполняющий плавающий контент, отрегулировав высоту окна до высоты переполненного контента, но, похоже, это не делает трюк.height() не возвращает правильную высоту на элементе

  if ($('.content-right').outerHeight() > $('.content-right').parent().parent().height()) { 
       $('.content-right').parent().parent().height($('.content-right').outerHeight(true)); 
      } 
      console.log('Box Height: ' + $('.content-right').parent().parent().height()); 
      console.log('Content Height: ' + $('.content-right').height()); 

Это выведет

Box Height: 599 
Content Height: 594 

Что неправильно, поскольку ДИВ явно намного больше, в приведенном ниже примере. Есть идеи?

Problem Area область Проблема в виде изображения: http://prntscr.com/4p1obb

+0

Если вы читали внимательно Docs: http://api.jquery.com/height/ он ясно говорит: * 'Этот метод не принимает никаких arguments.' * –

+1

Вместо использования '.parent(). Parent()' взгляните на метод http://api.jquery.com/closest/. –

+0

Кроме того, ** кешируйте элементы **, вы планируете использовать больше один раз и чрезмерно 'var $ contRight = $ ('. Content-right');' –

ответ

1

Существует ошибка JQuery outerHeight в более ранних версиях, где он не будет возвращать высоту, если вы не передаете параметр. Также, как было предложено в комментариях, вам нужно удалить true из height().

if ($('.content-right').outerHeight(true) > $('.content-right').parent().parent().height()) { 
    $('.content-right').parent().parent().height($('.content-right').outerHeight(true)); 
} 
console.log('Box Height: ' + $('.content-right').parent().parent().height()); 
console.log('Content Height: ' + $('.content-right').height()); 

UPDATE:

Попробуйте это (и ошибка упоминалось выше все еще применяется, поэтому убедитесь, что поставить в качестве параметра). Приведенный ниже код дает мне высоту 868.

var outerHeight = 0; 
$('.content-right > *').each(function() { 
    outerHeight += $(this).outerHeight(true); 
}); 
console.log(outerHeight); 
+0

Прочтите кеш-селекторов! Используйте метод '.closest ('selector')' вместо ненужного вложения '.parent()' –

+0

@Roko C. Buljan. Не моя цель - оптимизировать код OP. Я предлагаю ответить на его вопрос. Вы уже предложили это в своих комментариях выше, чтобы он мог сделать это сам. – manishie

+0

Roko, перестань быть предвзятым. Это не имеет ничего общего с функциональностью. это личное мнение. Как сказано, он был переписан FROM vars, пытающийся отлаживать. Спасибо, что видно на странице, нет ошибки. Возвращенная высота ** неверна ** – WASasquatch

Смежные вопросы