Comment fermer fancybox après Ajax Submit?

J’utilise le plugin de formulaire Jquery.

Popup est affiché avec le formulaire de téléchargement d’image. L’image est téléchargée avec succès. Je veux fermer la fenêtre contextuelle après le téléchargement réussi de l’image. Le javascript ci-dessous est écrit en contenu popup.

$(this).ajaxSubmit({ success: function(dd) { parent.$.fancybox.close(); } }); 

Mais ça ne fonctionne pas. Jquery library, bibliothèque fancybox incluse dans le contenu contextuel et dans la page parent.

De plus, je veux recharger à nouveau la boîte fantaisie avec le contenu “dd (ajax return value)” chargé avec elle. Il aura la fonction Jcrop.

Pour le moment, Jcrop ne fonctionne plus une fois que ajaxSubmit a été utilisé pour télécharger une image. Sinon ça marche

EDIT J’ai renommé page1 page2 et page3 pour mieux comprendre index.html

        $(document).ready(function() { $(".various").fancybox({ maxWidth : 800, maxHeight : 600, fitToView : false, width : '70%', height : '100%', autoSize : false, closeClick : false, openEffect : 'none', closeEffect : 'none' }); });    Upload   

https://stackoverflow.com/questions/9313918/how-to-close-fancybox-after-ajax-submit/upload.php

 
$(document).ready(function() { $("#form").submit(function() { $(this).ajaxSubmit({ beforeSubmit: function(before) { }, success: function(dd) { $('.result').html(dd); } }); return false; }); });

test.php contient (je viens de tester avec une image statique. Je n’ai pas écrit le script de téléchargement ici.)

      $(function(){ $('#cropbox').Jcrop({ }); });   

Jcrop ne fonctionne pas avec cette méthode. Si je saute l’étape https://stackoverflow.com/questions/9313918/how-to-close-fancybox-after-ajax-submit/upload.php, jcrop fonctionne très bien dans fancybox. J’ai donc besoin de supprimer et de créer une nouvelle boîte après le téléchargement!

FIN DE L’EDIT

essaye ça

 var fancyboxProxy = $.fancybox; $(this).ajaxSubmit({ success: function(dd) { fancyboxProxy.close(); } }); 

MODIFIER:

Je l’ai corrigé en mettant tous les js dans index.php et en utilisant jquery live pour définir l’écouteur d’événements

 $(document).ready(function () { $(".various").fancybox({ maxWidth: 800, maxHeight: 600, fitToView: false, width: '70%', height: '100%', autoSize: false, closeClick: false, openEffect: 'none', closeEffect: 'none' }); $("#form").live('submit', function () { $(this).ajaxSubmit({ beforeSubmit: function (before) { }, success: function (dd) { $.fancybox.close(); } }); return false; }); }); 

démo

la source

À votre santé

Merci pour le bon code.

Insérez simplement le code ci-dessous dans le fichier test.php. créer un dossier de téléchargement dans votre racine.

 '; } else { print "Upload failed!"; } ?> 

Vous obtiendrez votre résultat parfait.