0

Я использую JQuery, чтобы сохранить соотношение сторон при повторной калибровке. На небольших экранах я хочу использовать этот скрипт в другом классе. Кажется, все работает очень хорошо при первой загрузке.Как запустить сценарий при изменении размера окна?

Но когда я изменяю размер моего окна от большого> 768 до малого < 767, скрипт не работает, если я не перезаряжу. Странно, когда я загружаю сайт в маленьком окне < 767 и изменяю его размер до большого> 768, скрипт действительно работает и продолжает работать при повторной калибровке. Любая идея, как это решить?

if ($(window).width() > 768) { 
    /* square featured-column1 box aanpassing */ 
    equalheight = function(container) { 
     var currentTallest = 0, 
      currentRowStart = 0, 
      rowDivs = new Array(), 
      $el, 
      topPosition = 0; 
     $(container).each(function() { 
      $el = $(this); 
      $($el).height('auto') 
      topPostion = $el.position().top; 

      if (currentRowStart != topPostion) { 
       for (currentDiv = 0; currentDiv < rowDivs.length; currentDiv++) { 
        rowDivs[currentDiv].height(currentTallest); 
       } 
       rowDivs.length = 0; // empty the array 
       currentRowStart = topPostion; 
       currentTallest = $el.height(); 
       rowDivs.push($el); 
      } else { 
       rowDivs.push($el); 
       currentTallest = (currentTallest < $el.height()) ? ($el.height()) : (currentTallest); 
      } 
      for (currentDiv = 0; currentDiv < rowDivs.length; currentDiv++) { 
       rowDivs[currentDiv].height(currentTallest); 
      } 
     }); 
    } 
    $(window).load(function() { 
     equalheight('.featured-column'); 
    }); 

    $(window).resize(function() { 
     equalheight('.featured-column'); 
    }); 
    /* Aspect ratio box (responsive rechthoek) aanpassing */ 
    $(document).ready(function() { 
     aspectResize(); 
     $(window).resize(aspectResize); 
    }); 
    aspectResize = function() { 
     var $aspect = $('div.up-to-date-bar'); 
     var width = $aspect.width(); 
     $aspect.height(width/3 * 1); 
    } 
} 
/* Aspect ratio box (responsive rechthoek) aanpassing up-to-date-column*/ 
if ($(window).width() < 767) { 
    $(document).ready(function() { 
     aspectResize(); 
     $(window).resize(aspectResize); 
    }); 
    aspectResize = function() { 
     var $aspect = $('div.up-to-date-column'); 
     var width = $aspect.width(); 
     $aspect.height(width/1 * 1); 
    } 
} 
+0

не заметил, что там было больше кода. - можете ли вы воспроизвести проблему внутри jsfiddle –

+0

Возможный дубликат [Выполнение JQuery при изменении размера окна?] (http://stackoverflow.com/questions/9828831/jquery-execution-on-window-resize) – Huangism

ответ

0

Вы можете использовать http://api.jquery.com/resize/ для вызова функции при изменении размера окна.

$(window).resize(function() { 
    // Your code here 
}); 
+0

Пожалуйста, прочитайте [ответ] –

+1

Это то, что вы хотели? Немного контекста с вашей ссылкой было бы полезно ;-) –

+0

Это то, что «все» хотели :) Я один из многих пользователей, которым посчастливилось быть заданными с обзором вопросов и ответов низкого качества на этом сайте. Ваш ответ был помечен для просмотра. Комментарий, который я оставил, автоматически генерировался системой обзора, когда я сказал, что ваш ответ не должен быть удален, но ему нужна была некоторая работа. Спасибо, что нашли время, чтобы добавить контекст - все это способствует улучшению сайта. –