Javascript 将jquery多文件绑定到动态加载的表单

Javascript 将jquery多文件绑定到动态加载的表单,javascript,jquery,dom,multifile-uploader,Javascript,Jquery,Dom,Multifile Uploader,我正在使用以下jquery多文件插件: 我在过去使用过它,没有任何问题,但现在我尝试在动态加载的表单中使用它,这导致了一个奇怪的问题 根据本文加载表单时,我正确绑定了函数,因此请理解这是一个与此处发布的问题不同(尽管相关)的问题: 那里的第一行,$(ele).makeModal(“”,800)只是我为创建模式窗口而做的一个jQuery扩展,因此在这里元素被添加到DOM中,接下来的几行我绑定了MultiFile插件,因此$(“.multi”).MultiFile() 第一次这样做时,效果很好。

我正在使用以下jquery多文件插件:

我在过去使用过它,没有任何问题,但现在我尝试在动态加载的表单中使用它,这导致了一个奇怪的问题

根据本文加载表单时,我正确绑定了函数,因此请理解这是一个与此处发布的问题不同(尽管相关)的问题:

那里的第一行,
$(ele).makeModal(“”,800)
只是我为创建模式窗口而做的一个jQuery扩展,因此在这里元素被添加到DOM中,接下来的几行我绑定了
MultiFile
插件,因此
$(“.multi”).MultiFile()

第一次这样做时,效果很好。但是,当用户关闭模式窗口,然后再次尝试加载表单时,我得到一个错误

Uncaught TypeError: Cannot call method 'apply' of undefined
(使用
jQuery.remove()
,关闭模式窗口会将其从DOM中完全删除,因此将来的任何窗口都是完全从新窗口写入的)

经过一些修改,这似乎是由于jQuery无法访问
多文件
脚本。。。我想


MultiFile
脚本加载在父文档的头部,因此应该随时可用。

我的第一个猜测是jQuery插件中的某些东西失败了。你得到开发(可读)源代码了吗
.apply
很可能在函数上被调用,为什么它
未定义
?是的,
.apply
在插件中被调用了4次,但我看不出为什么第二次调用时任何东西都应该未定义。无法破解此问题,无论我做什么,如果我在没有页面加载的情况下重新绑定此插件,都会导致错误。我不得不重新工作我的工作流程以避免任何重新绑定的需要。你说的“重新绑定”是什么意思?您是否加载了该插件两次?没有,但每次加载模式窗口时,我都在创建函数需要绑定到的新元素
$(“.multi”).MultiFile()被调用。第二次调用新元素会导致错误。因此,我现在只使用JQuery生成元素一次,然后隐藏,而不是在关闭时将它们从页面中删除。
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();
    });
};
Uncaught TypeError: Cannot call method 'apply' of undefined