2014-02-20 26 views
5

kann mir jemand sagen, wie Popup im Popup mit Magnific-Popup-Jquery-Plugin (mit Ajax) zu öffnen.wie Popup in Popup in Magnific Popup-Plugin zu öffnen

$('.ajax-popup-link').magnificPopup({ 
    type: 'ajax' 
}); 
<a href="path-to-file.html" class="ajax-popup-link"> Link 1 </a> 

auf "path-to-file.html"

<a href="path-to-other-file.html" class="ajax-popup-link"> next popup </a> 

Dank

Antwort

5

Sie nicht zwei Fenster haben auf einmal offen. Aber der Inhalt von Popup wird ersetzt, wenn es zweites Mal aufgerufen wird, hier ist Beispiel - http://codepen.io/dimsemenov/pen/hwIng

+2

hallo zu geben, seine Inline-Inhalt Ich will es mit Ajax! –

+0

Wie würden Sie dies tun, um dynamisch Popups dynamisch zu verknüpfen, um zum Beispiel in Posts zu navigieren @ DmitrySemenov – josethernandezc

+2

Dies funktioniert nicht mit Ajax, da es nur den Inhalt und nicht die Optionen usw. ersetzt. Ist das tatsächlich möglich? Scheint einschränkend, wenn nicht. – Paul

1

Dies ist möglich, solange Sie nächste und vorherige Links innerhalb der Seite haben, die Sie über Ajax ziehen.

Das ist für mich gearbeitet:

$('.js-pack').magnificPopup({ 
    delegate: '.js-mfp-ajax', 
    type: 'ajax', 
    closeOnBgClick: false, 
    mainClass: 'mfp-fade', 
    removalDelay: 300, 
    overflowY: 'scroll', 
    gallery: { 
     enabled: true 
    }, 
    callbacks: { 
     ajaxContentAdded: function() { 
      $('.prev-next .next-link').click(function(event){ event.preventDefault(); $.magnificPopup.next(); }); 
      $('.prev-next .prev-link').click(function(event){ event.preventDefault(); $.magnificPopup.prev(); }); 
     } 
    } 
}); 

Sie wichtige Teile hinzuzufügen sind gallery: enabled und die callbacks Parameter.

Die HTML meiner nächsten i.Vj. Tasten ist ziemlich einfach:

<div class="prev-next"> 
    <a class="btn prev-link" href="http://prev-url" rel="prev">« Previous</a> 
    <a class="btn next-link" href="http://next-url" rel="next">Next »</a> 
</div> 
1

Sie es wünschen, indem sie eine einfache Ajax tun können:

$('a.your-link').on('click',function(e){ 
    e.preventDefault(); 
    $.ajax({ 
     type: "GET", // or POST 
     url: 'url_to_php_page.php', 
     data: { 
      get_request_id : $(this).data('id'), // assign a data-id to the link 
     },          
     success: function(data){ 
      $.magnificPopup.open({ 
       type: 'inline', 
       closeOnContentClick: false, 
       items: { 
        src: data 
       } 
      }) 
     } 
    }); 
}); 

Dann auf Server-Seite abrufen Sie die get_request_id mit $_GET['get_request_id'] oder $_POST['get_request_id'].

2

weiß ich, das einen alten Thread, aber für jemand noch interessiert, ist dies für mich gearbeitet:

$(document).on('click', '.sAjax', function(e){ 

     $.magnificPopup.close(); // Close existing popup 

     // Open new popup 
     $.magnificPopup.open({ 
      items: { 
       src: 'new-page.html', 
       type: 'ajax' 
      } 
     }); 

     e.preventDefault(); 

}); 

Vergessen Sie nicht, Ihren Link, um die neue Klasse von .sAjax

Verwandte Themen