Sto cambiando img src una volta caricato un file json, tutto funziona correttamente. Ma voglio assicurarmi che l'immagine sia completamente caricata. Che posso fare utilizzando:jquery callback sul caricamento dell'immagine quando si cambia src
.one("load",function(){
alert("image has load yay");
});
Ma dopo aver letto vari post che non tutti i browser sparano il carico se l'immagine è nella cache. Non riesco a riscontrare questo problema nel browser che ha lo scopo di causare questo problema. Ma ho testato solo FF (6.0.2), Chrome (13.0.7) e Safari (5.0.5) su un Mac. Ora sono sicuro che IE deve avere un problema ed è solo relativo al PC. Sto eseguendo versioni abbastanza recenti dei browser, quindi è cambiato qualcosa in questi e ora carica. O il mio altro pensiero è che sto utilizzando l'ultima versione di jquery (1.6.3) .load è stato modificato?
Spero che tutto funzioni con l'ultimo jQuery, ma se non lo è ed è un vecchio problema del browser, devo inserire una correzione. Ho provato un paio di soluzioni in questo sito, ad esempio: jQuery loading images with complete callback E anche alcuni dei commenti nella pagina .load api: http://api.jquery.com/load-event/#comment-30211903
Ma io non riesco a farli funzionare. Il primo non funziona affatto e il secondo sembra cadere con il .each().
Questo è il codice che ho finora, che sembra funzionare bene, ma non può essere sicuro come forse un vecchio problema del browser.
$.getJSON(jsonURL, function(json) {
$("a.imgZoom img").attr("src", json[imageID].largeImage).one("load",function(){
alert("the image has loaded");
//do something here
});
$("a.imgZoom").attr("href", json[imageID].largeImage);
})
Grazie in anticipo per qualsiasi aiuto.
B
Grazie per la risposta, mi spiace non sicuro al 100% come posso chiamarlo prima. Guardando il tuo esempio non è stato d'aiuto neanche :( – Ben
Ho aggiunto un esempio alla mia risposta che sembra funzionare – jfriend00
Grazie jfriend00, ho funzionato, ovviamente non sono sicuro che risolva i possibili problemi con .load come mio versione del lavoro, ma ti crederò sulla parola. – Ben