Как проверить высоту div, чтобы переставить блоки div

Я использую jQuery Masonry на своем сайте для отображения сообщений в блоге. И в каждом блоке постов есть поле для комментариев Facebook. Когда появляется новый комментарий, контейнерный блок расширяется и, к сожалению, перекрывается с нижним. В этом случае мне нужно повторно запустить скрипт Masonry для перезагрузки блоков. Скриншот

Поэтому я использую плагин Jquery Resize Event от Ben Alman, чтобы проверить изменение высоты div, чтобы сценарий Masonry перемещал блок в соответствии с его новым размером и избегал наложений.

Хотя он не работает и, кажется, нет ошибок, когда я проверяю его с помощью firebug. Я новичок в Jquery, и я надеюсь, что я просто делаю здесь простую ошибку.

Если вы хотите взглянуть на это, пожалуйста, проверьте bjk-tribun.com. Вы увидите наложение при вводе некоторых комментариев в поле для комментариев.

$(function(){
  // Bind the resize event. When any test element's size changes, update its
  // corresponding info div.
  var iframe = $(".fb_iframe_widget");

  // Called once the Iframe's content is loaded.
  iframe.load(function(){
    // The Iframe's child page BODY element.
    var iframe_content = iframe.contents().find('body');

    // Bind the resize event. When the iframe's size changes, update its height as
    // well as the corresponding info div.
    iframe_content.resize(function(){
      var elem = $(this);

      // Resize the IFrame.
      iframe.css({ height: elem.outerHeight( true ) });

      $('#sort').masonry(reloadItems);

    // Resize the Iframe and update the info div immediately.
    iframe_content.resize();
  });
});

2 ответа

В зависимости от того, какую версию jQuery вы используете, вам может потребоваться добавить модуль px в свойстве css:

iframe.css({ height: elem.outerHeight( true ) + "px" });

Хорошо, я не знаю почему, но как только я отключил colorbox.js, который был плагином лайтбокса, плагин Jquery Masonry начал реагировать на div resize. Так что, если кто-то сталкивается с той же проблемой, он должен сначала попытаться отключить другие плагины jquery, чтобы не тратить целую неделю на этот вопрос.

Я также отключил плагин Бена Алмана, который вставил выше. Масонства достаточно для обработки события изменения размера.

Другие вопросы по тегам