У меня есть фреймворк (vue.js), вставляющий некоторые изображения при изменении страницы (с маршрутизатором, а не с реальным обновлением страницы). При загрузке непосредственно, я могу сделать страницу отображения экрана загрузки:Как вызвать событие загрузки после загрузки самого окна?
loading = true;
$(window).on('load', function(){
loading = false;
});
Однако $(window).on('load')
не срабатывает, если страница была навигация с помощью рамки. Это (я предполагаю), потому что window
уже загружен, а загрузка новых изображений больше не привязана к окну. Таким образом, loading = false
никогда не запускается, потому что окно уже загружено.
Вот весьма упрощенный пример, но он иллюстрирует ту же точку:
//Loading the initial image, it works fine because it runs on window load.
console.log('Loading first image...')
$(window).on('load',function(){
console.log('First image loaded');
});
$('button').on('click',function(){
$('div').append('<img src="https://placekitten.com/200/300">');
console.log('Loading extra image...');
//This never triggers because the window is already loaded.
//I need something to trigger while the appended images are loading
$(window).on('load',function(){
console.log('Extra image loaded.');
});
});
HTML:
<img src="https://placekitten.com/200/300">
<button>Click to load extra</button>
<div></div>
Вот codepen.
Не знаю, если это работает, но вы пробовали: '$ (окно) .trigger ('нагрузки');'? (Я не думаю, что вы можете инициировать событие с 'on'). Хотя, я должен спросить, зачем вам это нужно? Вы можете слушать загрузку новых изображений отдельно. – DBS
Загрузка изображения перед добавлением его на страницу также позволяет запускать любой загруженный код: http://stackoverflow.com/questions/10863658/load-image-with-jquery-and-append-it-to-the -dom – DBS
@DBS Не инициирует запуск события загрузки, независимо от того, загружено ли изображение на самом деле? Как бы я это сделал? Вы также упомянули прослушивание загрузки отдельно. Также не уверен, что вы подразумеваете под этим. Что касается вашего второго комментария, к сожалению, это не вариант с каркасом, который я использую. Не без особых затруднений, так или иначе. –