Ich habe ein Framework (vue.js) Einfügen einiger Bilder auf einer Seite ändern (mit einem Router, nicht eine echte Seite aktualisieren). Wenn direkt geladen wird, kann ich die Seite machen einen Ladebildschirm anzuzeigen:Wie löst ich ein Ladeereignis aus, nachdem das Fenster selbst geladen wurde?
loading = true;
$(window).on('load', function(){
loading = false;
});
Allerdings ist die $(window).on('load')
nicht auslösen, wenn die Seite über den Rahmen navigiert wurde. Dies (ich nehme an) ist, weil die window
bereits geladen ist, und das Laden der neuen Bilder ist nicht mehr an das Fenster gebunden. So wird der loading = false
nie ausgelöst, weil das Fenster bereits geladen ist.
Hier ist ein extrem vereinfachtes Beispiel, aber es zeigt den gleichen Punkt:
//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>
hier ein codepen ist.
Keine Ahnung, ob das funktioniert, aber haben Sie versucht: '$ (Fenster) .trigger ('load');'? (Ich glaube nicht, dass Sie ein Ereignis mit "on" auslösen können). Ich muss allerdings fragen, warum müssen Sie das tun? Sie können das Laden neuer Bilder separat abhören. – DBS
Laden Sie das Bild, bevor Sie es auf der Seite hinzufügen, können Sie auch Code ausgeführt, sobald geladen: http://stackoverflow.com/questions/10863658/load-image-with-jquery-and-append-it-to-the- -dom – DBS
@DBS Würde nicht nur das Loadereignis auslösen, unabhängig davon, ob das Bild tatsächlich geladen ist? Wie würde ich das einrichten? Sie haben auch erwähnt, dass Sie für das Laden separat hören. Auch nicht sicher, was du damit meinst. Wie für Ihren zweiten Kommentar, das ist leider nicht wirklich eine Option mit dem Rahmen, den ich benutze. Jedenfalls nicht ohne große Schwierigkeiten. –