2010-01-29 26 views
1

J'ai implémenté lightbox-plugin pour jQuery de krewenki dans une masterpage incluant toutes les images. Cela fonctionnait bien. Jusqu'à ce que je place les images dans une page externe et charge cette page d'images externes dans le document maître. Lightbox ne fonctionne plus. Est-ce une erreur de code jQuery, ou est-ce un problème de plug-in lightbox?Lightbox ne fonctionne pas après une page externe chargée avec des images

Main-html

<html> 
<head> 
    <link rel="stylesheet" type="text/css" href="css/jquery.lightbox.css" /> 
    <script src="js/jquery-1.3.2.min.js" type="text/javascript"></script> 
    <script src="js/jquery-ui-1.7.2.custom.min.js" type="text/javascript"></script> 
    <script src="js/jquery.lightbox.js" type="text/javascript"></script> 
    <!-- http://github.com/krewenki/jquery-lightbox --> 
    <script language="JavaScript"> 
     jQuery(document).ready(function() { 
      $("#loadimages").live('click', function() { 
       $('#images').load('images.html'); 

       $(".lightbox").lightbox(); // THIS DOESN'T WORK??? 
      }  
     }); 
    </script> 
</head> 
<body> 
    <div><a href="#" id="loadimages">Load images</a></div> 
    <div id="images"></div> 
</body> 
</html> 

images.html

<a href="image1.jpg" class="lightbox" rel="group1" title="image1"><img src="imgage1_thumb.jpg"/></a> 
<a href="image2.jpg" class="lightbox" rel="group1" title="image2"><img src="imgage2_thumb.jpg"/></a> 
<a href="image3.jpg" class="lightbox" rel="group2" title="image3"><img src="imgage3_thumb.jpg"/></a> 
<a href="image4.jpg" class="lightbox" rel="group2" title="image4"><img src="imgage4_thumb.jpg"/></a> 

Répondre

2

Vous n'êtes pas attendu load() pour terminer avant d'appeler lightbox(). C'est une fonction asynchrone, donc vous devez le faire grâce à un rappel:

jQuery(document).ready(function() { 
    $("#loadimages").live('click', function() { 
     $('#images').load('images.html', function() { 
      $(".lightbox").lightbox(); 
     }); 
    }  
}); 
+0

Ok, cette partie me manquait toujours, le rappel! C'est génial et fonctionne parfaitement. Merci pour cette leçon! Maintenant, je peux réparer tous mes autres bugs :-) Merci! –