Высота набора jQuery ПОСЛЕ загрузки - PullRequest
6 голосов
/ 16 августа 2010

У меня небольшие проблемы с настройкой высоты элемента, который загружается динамически.

Я использую функцию jquery load для загрузки внешней (динамической) страницы в div (#cbox) на моей текущей странице. Поскольку эта подстраница является динамической, я не могу знать заранее, какова высота содержимого. Я хочу получить высоту, как только содержимое загружено, и установить высоту контейнера div, чтобы он соответствовал так, чтобы мой цветной фон css полностью опустился. Я пробовал много вариантов 100% высоты div только в css, но как только я прокручиваю страницу, цвет прокручивается вверх (100%, кажется, устанавливает только 100% высоты окна браузера, и б / у содержимое динамически загружено, это не работает. Мое решение состоит в том, чтобы установить высоту div к высоте загруженного контента, но это работает только на ВТОРОЙ клик (потому что в этот момент страница загружена и доступна. Что мне нужно выяснить как это сделать, изменить высоту div после того, как внешняя страница уже загружена, но я не могу понять это).

Надеюсь, это кому-то понятно, я понимаю, что это немного запутанно.

вот мой код клика:

jQuery('#cbox').load('externalpage.php');
jQuery('#cbox').height(jQuery('#content').height());

UPDATE: Решения ниже работают, если я хочу установить высоту к этому div. Но теперь я обнаружил, что хочу установить только эту высоту div, если высота содержимого выше окна. В противном случае я хочу, чтобы он был установлен на 100%. Я попытался немного изменить их код к этому (событие onlick):

jQuery('#cbox').load('<?php the_permalink(); ?>', function() 
   { 
      if (jQuery('#cbox').height() < jQuery('#content').height()) 
      {
         jQuery('#cbox').height(jQuery('#content').height()); 
      } 
      else
      { 
         jQuery('#cbox').height('100%'); 
      }
   });

но это не работает ... есть идеи?

Ответы [ 2 ]

16 голосов
/ 16 августа 2010

Вам нужно вызвать функцию обратного вызова после загрузки контента.

jQuery('#cbox').load('externalpage.php', function() {
   jQuery('#cbox').height(jQuery('#content').height());
});
4 голосов
/ 16 августа 2010

Используйте обратный вызов загрузки.

jQuery('#cbox').load('externalpage.php', function() {
  jQuery('#cbox').height(jQuery('#content').height());
});
...