Partage
  • Partager sur Facebook
  • Partager sur Twitter

<img/> avec load ...

Sujet résolu
    23 mars 2011 à 19:32:09

    Salut,
    pouvez-vous m'expliquer un truc : pourquoi écrire : <img/>

    $images.each(function(){
     var $img= $(this);
     $('<img/>').load(function(){
    


    et non pas : le simple $(this)

    $images.each(function(){
     var $img= $(this);
     $img.load(function(){
    


    Pour ce code html :

    <ul class="slider">
    <li><img src="images/1.jpg" alt="First Image" /></li>
    <li><img src="images/2.jpg" alt="Second Image" /></li>
    


    ?
    • Partager sur Facebook
    • Partager sur Twitter
      23 mars 2011 à 23:37:27

      Ca n'a aucun intérêt si tu n'affectes pas un src à l'image créée...

      Est-ce que la suite du code ne serait pas...

      $('<img/>').load(function(){
          /* ... */
      }).attr('src','......');
      


      ?
      • Partager sur Facebook
      • Partager sur Twitter
        24 mars 2011 à 0:20:53

        oui en effet, ok je comprend mieux le truc, merci de ta réponse ;)
        • Partager sur Facebook
        • Partager sur Twitter
          25 mars 2011 à 13:15:02

          Salut ;)

          j'ai quand même une petite question, dans ma fonction on crée les <img/>, on leur donne un attribut, mais on ne les place jamais dans le code, et si on veut créer l'image, on crée un nouveau <img/> et on lui donne une source dans une autre fonction. Donc la boucle qui a créé les <img/>, sert à mettre les images dans la mémoire cache?

          dans le code ça donne ça :

          on appelle une première fois la fonction :

          $.when(loadImages()).done(function(){
          


          on preload les images :
          /* preloads a set of images */
          loadImages = function() {
          return $.Deferred(
          	function(dfd) {
          	var total_images 	= $ItemImages.length,
          	loaded			= 0;
          	for(var i = 0; i < total_images; ++i){
          		$('<img/>').load(function() {
          		++loaded;
          		if(loaded === total_images)
          			dfd.resolve();
          		}).attr('src' , $ItemImages[i]);
          }
          


          et dans une autre fonction, on crée l'<img/> final :

          var $itemImage = $('<img src="'+source+'" alt="Background" class="ac_bgimage"/>');
          


          ?
          • Partager sur Facebook
          • Partager sur Twitter
            25 mars 2011 à 19:31:19

            Ouaip, c'est juste du préload.

            Par contre, il est vrai qu'ils auraient pu conserver la première image créée quelque part plutôt que d'en recréer une autre.
            • Partager sur Facebook
            • Partager sur Twitter

            <img/> avec load ...

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown