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 } }); });