CSS arka plan resmi tam yüklü olduğunda JQuery bağlama olayı

Bir arka plan görüntüsü TAMAMEN yüklendikten sonra bir olayı tetiklemek istiyorum. Görüntü, dinamik bir PHP betiğinden yapılmıştır.

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

belki de görüntüyü görünmez bir olarak ve görüntü yüklendiğinde (.load ()) görüntülemeye çalışabilirim arka plan görüntüsünü o görünmez olan src ile mi ayarlayın? emin değil...

yardımın için teşekkürler.

7

2 cevap

Bu konuda yardımcı olacak waitForImages adlı jQuery eklenti kullanabilirsin ...

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

Aksi takdirde, el ile yapmak ...

var image = 'image.php',

    img = $('');

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

img.attr('src', image);

$('#box').css('background-image', 'url(' + image + ')');
10
katma
@pelelive
katma yazar alex, kaynak
Bu hatayı neden aldığımı biliyor musunuz: Hata: $ .isPlainObject bir işlev değil mi? (image.php, her aradığımızda yeni bir görüntü oluşturduğunu unutmayın)
katma yazar pelelive, kaynak
teşekkür ederim alex şimdi çalışıyor. şerefe!
katma yazar pelelive, kaynak
$("#box img").load(function() {  
    //the image elements in #box are fully loaded.
});
1
katma
Bir img öğesi değil, background-image .
katma yazar alex, kaynak