Событие, эквивалентное Turbolinks, для window.load

У меня есть веб-приложение rails, которое использует Masonry для размещения изображений на странице. Я активирую Masonry следующим образом:

var masonry_load = function(){...};
$(window).on('load', masonry_load);

Использование window.load вместо document.ready гарантирует, что изображения были загружены, что необходимо для того, чтобы Masonry мог их правильно упорядочить (их высота варьируется).

Однако я не смог найти эквивалентное событие для использования в Turbolinks. Попытка использовать Turbolinks document.page:load ведет себя так же, как document.ready; а именно, миниатюры расположены неправильно, потому что Masonry пытается запуститься, не зная размеров изображения.

Есть ли в Turbolinks событие, которое запускается, когда весь контент в новом теле загружен, подобно тому, как window.load ведет себя для нормально загруженной страницы?


person Suchipi    schedule 28.03.2015    source источник
comment
Используйте jQuery Turbolinks — github.com/kossnocorp/jquery.turbolinks   -  person Sharvy Ahmed    schedule 28.03.2015
comment
под document.page:load вы имеете в виду $(window).on('page:load', masonry_load); правильно?   -  person Mohammad AbuShady    schedule 28.03.2015
comment
Вы уже нашли решение этой проблемы?   -  person elsurudo    schedule 11.02.2018
comment
@elsurudo нет, я больше не работаю над проектом, где мне это было нужно.   -  person Suchipi    schedule 11.02.2018


Ответы (1)


Вы можете использовать

document.addEventListener("turbolinks:load", function() { /* ... */ });

Дополнительная информация: Документация по Turbolinks

person Yunus Emre    schedule 23.01.2020