2011-10-28 14 views
7

Me gustaría desencadenar un evento después de que una imagen de fondo esté COMPLETAMENTE cargada. La imagen está hecha de un script PHP dinámico.Evento de vinculación de JQuery cuando la imagen de fondo CSS está completamente cargada

$("#box").css("background-image","url(image.php)"); 

tal vez pueda tratar de obtener la imagen en una y cuando la carga invisible <img> imagen (.load()) establecer la imagen de fondo con el src de ese invisible <img>? no estoy seguro ...

gracias por su ayuda.

Respuesta

10

Se podía usar mi plugin de jQuery llamado waitForImages que ayudaría con esto ...

$("#box").css("background-image", "url(image.php)").waitForImages({ 
    waitForAll: true, 
    finished: function() { 
     // Background image has loaded. 
    } 
}); 

De lo contrario, hacerlo de forma manual ...

var image = 'image.php', 

    img = $('<img />'); 

img.bind('load', function() { 
    // Background image has loaded. 
}); 

img.attr('src', image); 

$('#box').css('background-image', 'url(' + image + ')'); 
+0

¿sabes por qué me sale este error? Error: $ .isPlainObject no es una función? (tenga en cuenta que image.php generará una nueva imagen cada vez que lo llamemos) – pelelive

+0

@pelelive ¿Está utilizando alex

+0

gracias alex está trabajando ahora. ¡aclamaciones! – pelelive

-1
$("#box img").load(function() { 
    //the image elements in #box are fully loaded. 
}); 
+4

Es un 'del fondo imagen', no un elemento 'img' – alex

Cuestiones relacionadas