Comment définir une galerie de contenu en ligne dans HTML pour une utilisation avec Magnific-Popup?

J'ai plusieurs galeries sur une page qui sont lancées à partir de leurs boutons respectifs. J'aime l'idée de définir le balisage pour les galeries dans la page aux côtés du bouton, puis .mfp-hide cache en utilisant le .mfp-hide . Cependant, je ne peux pas activer le popup lorsque j'ajoute le mot-clé delegate (il le fait autrement).

Voici le code que j'ai jusqu'ici,

HTML

 <div id="gallery1" class="mfp-hide"> <div class="slide"> ... some content for slide 1 ... </div> <div class="slide"> ... some content for slide 2 ... </div> </div> <p>Blah blah <a href="#gallery1" class="open-gallery-link">view gallery one</a> blah blah ...</p> 

Javascript

 $('.open-gallery-link').magnificPopup({ type:'inline', delegate:'.slide', gallery: { enabled: true } }); 

Cela ne fonctionne pas de cette façon, le delegate cherche toujours des enfants de l'élément DOM cible (dans votre cas, les enfants de l'élément .open-gallery-link ).

Vous pouvez simplement analyser tout via jQuery et ouvrir la galerie via API:

 $('.open-gallery-link').click(function() { var items = []; $( $(this).attr('href') ).find('.slide').each(function() { items.push( { src: $(this) } ); }); $.magnificPopup.open({ items:items, gallery: { enabled: true } }); }); 

http://codepen.io/dimsemenov/pen/zvLny