J'ai un formulaire qui s'ouvre sur une fenêtre contextuelle et j'ai ajouté un close button
personnalisé à côté d'un bouton d'envoi.
Ceci est un jQuery que j'utilise pour le bouton de fermeture:
$(document).ready(function() {
$('#close').click(function() {
$.magnificPopup.close();
});
});
Cependant, cela ne semble pas fonctionner. Est-ce que quelqu'un sait comment faire ça?
Si votre extrait se trouve dans votre dossier principal, le bouton contextuel ajax peut ne pas être lié à l'événement. J'imagine deux solutions:
$('#close').on( "click", function() {
$.magnificPopup.close();
});
ajoute cette fonction dans votre js principal
function closePopup() {
$.magnificPopup.close();
}
Et utilisez ce genre de bouton dans votre popup html
<button type="button" onClick="closePopup();">Close</button>
Iframe:
Si votre bouton est situé dans une iframe et que le script magnificpopup de la fenêtre principale, du même domaine , vous pouvez accéder à la fonction ci-dessus de la manière suivante:
<button type="button" onClick="parent.closePopup();">Close</button>
essaye ça
<pre class="default prettyprint prettyprinted">
<code>
$('#close').click(function(){
$('.mfp-close').trigger('click');
});
</code>
</pre>
Certaines de ces réponses fonctionnent, mais cela dépend de votre implémentation de la popup. Si vous rencontrez toujours des problèmes, nous vous suggérons d'utiliser la méthode de rappel pour assurer la cohérence:
$.magnificPopup.open({
items: {
src: $domElement,
type: 'inline'
},
callbacks: {
open: function() {
$('#close-btn').on('click',function(event){
event.preventDefault();
$.magnificPopup.close();
});
}
}
});
J'espère que cela t'aides!
Cela ressemble à un bug dans Magnific Pop up. Pour utiliser le bouton dans le conteneur, vous devez fournir fixedContentPos: true;
le code suivant semble bien fonctionner pour moi. J'espère que ça aide.
$('.ajax-popup-link').magnificPopup({
type: 'ajax',
removalDelay: 100, // Delay in milliseconds before popup is removed
mainClass: 'my-mfp-slide-bottom',`enter code here` // Class that is added to popup wrapper and background
closeOnContentClick: false,
closeOnBgClick: false,
showCloseBtn: true,
closeBtnInside: true,
fixedContentPos: true,
alignTop: true,
// settings: {cache:false, async:false},
callbacks: {
open: function () {
},
beforeClose: function () {
this.content.addClass('light-speed-out');
},
close: function () {
this.content.removeClass('light-speed-out');
}
},
midClick: true
});
Vous devez ajouter à l'intérieur des paramètres contextuels closeBtnInside:true
.
1. Solution
Les méthodes ci-dessous n'ont pas en abrégé "ouvert" et "fermé".
Ils doivent être appelés via l'objet "instance". "Instance" n'est disponible que si au moins un popup a été ouvert. Par exemple: $ .magnificPopup.instance.doSomething ();
voici un exemple de clôture personnalisée pour magnificPopup
// sauvegarde l'instance magnificPopup dans la variable
var magnificPopup = $.magnificPopup.instance;
// ouvre une instance magnifique
$.magnificPopup.open({
items: {
src: 'someimage.jpg'
},
type: 'image'
}, 0);
// Fermer le popup actuellement ouvert
magnificPopup.close();
// Navigation lorsque la galerie est activée
magnificPopup.next(); // go to next item
magnificPopup.prev(); // go to prev item
magnificPopup.goTo(4); // go to item #4
// met à jour le contenu de la popup. Utile après avoir changé les "éléments"
magnificPopup.updateItemHTML();
2. Solution
vous pouvez ajouter un bouton dans la fenêtre contextuelle et attribuer une fonction à l'événement click comme:
$('#close-button-verify').click(function(){
//This will close the most recently popped dialog
//This method specially works for auto popped dialogs i.e.
//Popup you opened using $.magnificPopup.open()
$.magnificPopup.close();
});
Si une fenêtre contextuelle est déclenchée via un événement onClick, le même objet jQuery peut être utilisé pour la fermer.
$('#close-button-verify').click(function(){
$('#id_of_button_that_opened_magnificpopup').magnificPopup('close');
});
bonne chance :)
Le moyen le plus simple est d’ajouter une classe "mfp-close" à votre contrôle, comme ceci:
<a href="#" title="Close" type="button" class="btn btn-default mfp-close"> Fermer </a>
Ici, les classes Bootstrap sont également utilisées pour faire en sorte que le lien ressemble à bouton - peu importe.
$ .magnificPopup.close (); .. fonctionnerait si vous le mettiez dans votre contenu chargé avec ajax