Comment fermer une fancybox jQuery en cliquant sur un bouton

J’utilise Fancy Box pour créer une fenêtre contextuelle et y charger une autre page à l’aide d’un iframe. voici mon code

 $(document).ready(function() { $('.calendar .day').click(function() { day_num = $(this).find('.day_num').html(); day_data = prompt('Enter Stuff', $(this).find('.content').html()); if (day_data != null) { $.ajax({ url: window.location, type: 'POST', data: { day: day_num, data: day_data }, success: function(msg) { location.reload(); } }); } }); }); $(document).ready(function(){ $("a.iframeFancybox1").fancybox({ 'width' : 800, 'height' : 650, 'overlayOpacity' : '0.4', 'overlayColor' : '#000', 'hideOnContentClick' : false, 'autoScale' : false, 'transitionIn' : 'elastic', 'transitionOut' : 'elastic', 'type' : 'iframe' }); });  

Il charge la page avec succès et fait les choses. Mais au lieu de fermer le formulaire popup, il charge le formulaire source popup à l’intérieur du popup lui-même. Je souhaite fermer le formulaire contextuel une fois le travail terminé et revenir à la page du menu principal à partir de laquelle le menu contextuel a été généré. Comment y parvenir en cliquant sur un bouton du formulaire contextuel.

Cordialement, Rangana

appelez $.fancybox.close();

regardez aussi cette réponse dans le post

Selon http://fancybox.net/faq

  1. Comment puis-je fermer FancyBox à partir d’un autre élément? ?

Appelez simplement $.fn.fancybox.close() sur votre événement onClick

Donc, vous devriez juste pouvoir append dans le fn .

J’ai dû utiliser parent.jQuery.fancybox.close() avec mon site Drupal pour que cela fonctionne correctement.

Vous pouvez utiliser l’appel en ligne

  

Ou vous pouvez utiliser la fonction appelée

   

Fonction d’appel dans onClickevent

C’est un vieux fil mais je pensais partager mes deux sous.

Je rencontrais des problèmes similaires lors de la fermeture de l’iframe fancybox à l’aide de l’événement onclick. Après plusieurs tentatives, le problème a été résolu: window.parent.jQuery.fancybox.close ()

Voici un exemple utilisant un bouton de saisie:

  

De plus, j’ai testé le onlick sur une étiquette anchor (a) et cela a bien fonctionné.

$.fn.fancybox.close() ne fonctionne pas pour la version 2.x, en fait, il génère une erreur. Si vous utilisez la version 2.x, essayez $.fancybox.close(true) .

En raison de mon bouton de fermeture a différentes fonctions: fermer popup, et fermer fancybox. Il doit utiliser e.stopPropagation () pour arrêter un événement bouillonnant;

 $('.close-btn').on('click', function(e) { e.preventDefault(); e.stopPropagation(); $(this).parent().hide(); $.fancybox.close(); }); 

Solution SIMPLE, trouver le lien pour fermer (il a une classe fancibox-close) et le faire en 6 secondes (ou 6000 millisecondes)

 setTimeout(function(){ $('.fancybox-close').click(); }, 6000); 

Cela fonctionne pour moi …

       

Si vous voulez vérifier votre navigateur doit voir ce lien: http://jsfiddle.net/9zxvE/383/

Utilisez le bouton de fermeture d’événement de la boîte de fantaisie:

 document.getElementsByClassName("fancybox-item fancybox-close")[0].click();