Liaison de jquery-multifile à un formulaire chargé dynamicment

J’utilise le plugin jquery Multifile trouvé ici:

http://www.fyneworks.com/jquery/multiple-file-upload/

Je l’ai utilisé par le passé et je n’ai rencontré aucun problème, mais j’essaie maintenant de l’utiliser sous une forme chargée de manière dynamic, ce qui provoque un problème étrange.

Je lie correctement la fonction lors du chargement du formulaire conformément à cet article. Veuillez donc comprendre qu’il s’agit d’un problème DIFFÉRENT, bien que lié, à celui posté ici:

Impossible de lier l’événement d’entrée au fichier multifichier jQuery à partir d’un formulaire chargé dynamicment

$('#reportWindow').on('click', '#continueReport', function () { var data = $('.reportForm').serializeObject(); $('
').load('/Forms/report.aspx', data, function () { doReportForm(this); }); });

Un fichier ASPX est en cours de chargement dans une div utilisant jquery load comme indiqué ci-dessus, la fonction doReportForm doit appeler diverses méthodes de liaison à ce code HTML généré dynamicment selon:

 function doReportForm(ele) { $(ele).makeModal('', 800); FB.XFBML.parse(); checkLogin(); clearNetIds($('#reportForm2')); $("#datePicker").datepicker({ changeMonth: true, changeYear: true }); $('[class*="toolTip"]').setupTip(); $(".multi").MultiFile(); // input[type=file] $('#right').on('click', '#savePost', function () { var data = $('.reportForm2').serializeObject(); }); }; 

La première ligne, $(ele).makeModal('', 800); est simplement une extension jQuery que j’ai faite pour créer des fenêtres modales, donc c’est CE point où l’élément est ajouté au DOM, puis quelques lignes plus bas je lie le plugin MultiFile ainsi $(".multi").MultiFile();

La première fois que cela est fait, cela fonctionne bien. Mais, lorsqu’un utilisateur ferme la fenêtre modale, puis essaie de charger à nouveau le formulaire, une erreur se produit.

 Uncaught TypeError: Cannot call method 'apply' of undefined 

(La fermeture de la fenêtre modale la supprime complètement du DOM avec jQuery.remove() , ainsi toutes les futures fenêtres sont écrites complètement à partir de fraîches).

Après un peu de bidouillage, il semble que cela soit dû au fait que jQuery n’a pas pu accéder au script MultiFile … Je pense

Le script MultiFile est chargé dans l’en-tête du document parent et doit donc être disponible à tout moment.