Я новичок в JavaScript и потянув меня за волосы над этим ...Как я могу отменить выполнение JavaScript?
Демонстрационный проблемы здесь: http://codepen.io/sol_b/pen/PzgdWy
И это сценарий:
var sections = function() {
$('.image').each(function() {
var $this = $(this),
x = $this.find('img').width()
$this.width(x);
});
};
$(document).ready(function() {
sections();
});
$(window).resize(function() {
sections();
})
Ширина изображения вычисляется и присваивается контейнеру изображения. Идея состоит в том, что ряд изображений всегда будет поддерживать их соотношение сторон, без пробелов между контейнерами.
Проблема заключается в том, что код не срабатывает около 50% времени, а изображения просто хлюпают вместе. Изменение размера окна исправляет его, поэтому я думаю, что это как-то связано с последовательностью загрузки.
Я пробовал использовать window.onload и img.onload вместо document.ready, и это не решило его. Я что-то пропустил в своем сценарии?
Из [Документов] (https://api.jquery.com/ready/): _ ", в тех случаях, когда код полагается на загруженные активы (например, если требуются размеры изображения), код должен быть помещен в обработчик для события 'load' вместо этого." _ –
[Документация] (https://api.jquery.com/ ready /) «В случаях, когда код использует загруженные активы (например, если требуются размеры изображения), вместо этого код должен быть помещен в обработчик для события загрузки». – Sohil
@JuanMendes, пожалуйста, удалите дубликат здесь. Это не вопрос! Речь идет не о «всех» изображениях. – eisbehr