文件上传 Jquery 不能动态工作

fileupload Jquery doesn't work dynamically

本文关键字:不能动 动态 工作 不能 Jquery 文件      更新时间:2023-09-26

我使用这个文件上传脚本:http://tutorialzine.com/2013/05/mini-ajax-file-upload-form/

里面有这个:

$('#upload').fileupload({

我的问题是,我动态加载内容,所以我认为我需要这样的东西(因为我从 .click() 函数中知道这个问题):

$(document).on('fileupload', '#upload', function () {

但这行不通。谁能帮我,当动态加载带有 id="upload" 表单的内容时,如何调用此函数?

会很棒!

您的问题可能是因为您正在初始化$('#upload').fileupload() document.ready() .

在动态加载内容后,应将元素初始化为文件上传(执行$('#upload').fileupload())。

由于您在单击按钮时通过 ajax 加载内容(根据注释),因此您的代码应如下所示:

$(":button").click(function(){
 $.ajax("url",{
   success: function (data){
     //code for injecting the element into DOM
     $('#upload').fileupload(); // initialize it as file upload
   }
 });
});

您对"我需要这样的东西"部分几乎是正确的 - 您尝试的问题

$(document).on('fileupload', '#upload', function () {

是"文件上传"不是 .on() 所期望的事件,这就是为什么它在"点击"情况下对您有用而不是在这里。

在动态加载 $('#upload') 元素后,应将assets/js/script.js包含在页面中,以便在执行脚本之前存在脚本所需的所有内容。为此,请查看jQuery.getScript()或简单的dom方法,并在将元素添加到dom的代码之后使用它。

使用此函数

 $(function () {
        var options = {
            beforeSubmit: function (formData, jqForm, options) { },  // pre-submit callback 
            success: function (responseText, statusText, xhr, form) { }   // post-submit callback 
        };
        // bind form using 'ajaxForm' 
        $('#uploadForm').ajaxForm(options);
    });