将jquery-multifile绑定到动态加载的表单

我正在使用这里找到的jquery multifile插件:

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

我过去曾经使用它并没有任何问题,但现在我试图以动态加载的forms使用它,这引起了一个奇怪的问题。

我按照本文加载表单时正确绑定了函数,所以请理解这是一个与此处发布的问题不同但虽然相关的问题:

无法将输入事件从动态加载的表单绑定到jQuery多文件

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

按照上面的doReportForm ,使用jquery load将ASPX文件加载到divdoReportForm函数将按照以下方式调用各种绑定方法来动态生成HTML:

 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(); }); }; 

第一行, $(ele).makeModal('', 800); 我只是一个用于创建模态窗口的jQuery扩展,因此它将元素添加到DOM中,然后向下几行我绑定MultiFile插件,因此$(".multi").MultiFile();

第一次这样做,它工作正常。 但是,当用户关闭模态窗口然后再次尝试加载表单时,我收到错误。

 Uncaught TypeError: Cannot call method 'apply' of undefined 

(关闭模态窗口使用jQuery.remove()将其从DOM中完全删除,因此任何未来的窗口都是完全从新鲜编写的)。

经过一番摆弄后,看来这是因为jQuery无法访问MultiFile脚本…我认为

MultiFile脚本加载在父文档的头部,因此应始终可用。