Boîte de fantaisie proche de la fonction à l'intérieur de 'fancybox' ouverte

Bonjour tout ce que je veux pouvoir fermer fancyBox lorsqu'il est ouvert depuis.

J'ai essayé ce qui suit mais sans succès:

function closeFancyBox(html){ var re = /.*Element insert complete!.*/gi; if( html.search( re ) == 0 ){ $.fancybox.close(); //alert("foo"); } } 

Foo s'ouvrira dans le dialogue mais ne se refermera pas. Des conseils?

Essayez ceci: parent. $ .fancybox.close ();

Voir la documentation de Fancybox API .

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

Vous devriez donc simplement ajouter le fn .

Il est inutile de mettre le .fn, il repond au prototype.
Ce que vous devez faire est $ .fancybox.close ();

La chose est que vous éprouvez peut-être une autre erreur de js.
Il y a des erreurs sur l'écran?
Est-ce que votre fancybox et jquery les dernières versions? Jquery est actuellement en 1.4.1 et fb en 1.3 quelque chose

Expérimentez de mettre un lien dans la fancybox et de mettre cette fonction.

Vous avez probablement lu cela, mais en tout cas, http://fancybox.net/api

Une chose que vous devrez probablement faire est d'isoler chaque partie afin de réaliser ce qu'elle est.

Si vous voulez simplement fermer la boîte de fantaisie, il suffit de la fermer.

 $('#inline').click(function(){ $.fancybox.close(); }); 

J'ai eu les mêmes problèmes depuis longtemps, puis j'ai obtenu la solution par le code ci-dessous. veuillez utiliser

 parent.jQuery.fancybox.close() 

Vous pouvez même fermer fancybox en fermant l'identifiant du bouton et l'événement de clic d'appel sur cet identifiant.

 <input type='button' value='Cancel' onclick='javascript:document.getElementById("fancybox-close").click();' /> 

Ça marche pour moi!

Utilisez ceci pour le fermer à la place:

 $.fn.fancybox.close(); 

À en juger par le code source de fancybox, c'est ainsi qu'ils traitent de la fermeture interne.

Un peu d'un vieux fil mais …

En fait, je soupçonne que la réponse à la question initiale sur la façon de fermer la fenêtre à partir de la fenêtre a plus à voir avec le fait que l'événement de clic n'est pas attaché à l'élément. Si l'événement de clic est joint dans document.ready l'événement ne sera pas attaché lorsque fancybox crée la nouvelle fenêtre.

Vous devez réappliquer l'événement de clic une fois la nouvelle fenêtre. Probablement la façon la plus simple de le faire est d'utiliser la fonctionnalité OnComplete.

Cela fonctionne pour moi:

 $(".popup").fancybox({ 'transitionIn' : 'fade', 'transitionOut' : 'elastic', 'speedIn' : 600, 'speedOut' : 400, 'overlayShow' : true, 'overlayColor' : '#000022', 'overlayOpacity' : 0.8, 'onComplete' : function(){$('.closer').click(function(){parent.$.fancybox.close();})} }); 

En fait, après un peu de pensée «en direct» plutôt que «cliquer» ou «lier» pourrait fonctionner aussi bien.

Après avoir été en train de m'en jQuery.fancybox.close() j'ai trouvé une solution qui fonctionne simplement remplacer $ par jQuery jQuery.fancybox.close() et je l'ai fait un script en ligne sur un OnClick. Je vais vérifier si je peux l'appeler par le parent

Pour ceux qui ont passé des heures comme moi pour trouver la solution pour le type en ligne: window.setTimeout (function () {$ .fancybox.close ()}, 10);

Ajoutez $.fancybox.close() à l'endroit où vous voulez qu'il soit déclenché, dans une fonction ou un rappel, fin d'un appel ajax!

Woohoo.

Dans un iframe, utilisez – parent. $ .fancybox.close ();

Pour fermer fancybox par funciton il est nécessaire de faire setTimtout à la fonction qui va fermer la fancybox Fancybox a besoin de temps pour accepter la fonction de fermeture Si vous appelez la fonction directement ne fonctionnera pas

 function close_fancybox(){ $.fancybox.close(); } setTimeout(close_fancybox, 50); 

J'ai fini par utiliser:

 <script>parent.$("#fancy_close").click();</script> 

Je suppose que la version de fancybox que nous avons n'a pas de fonction $ .fancybox.close () pour que j'appelle 🙁

FYI, je voulais juste que la page ferme la fancybox, car elle avait fini son traitement en PHP.

Oui, dans Virtuemart, il doit être un bouton CLOSe-continuer à faire du shopping, pas un élément, car après le clic, vous pouvez rediriger … j'ai trouvé ce bug de redirection sur mon site Web ajax.

Pour fermer la fenêtre ajax fancybox, utilisez ceci:

 onclick event -> $.fancybox.close(); return false;