fileupload Jquery没有动态工作

时间:2014-11-26 20:57:28

标签: javascript jquery dom jquery-file-upload dynamically-generated

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

其中有:

$('#upload').fileupload({

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

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

但这不起作用。任何人都可以帮助我,当动态加载带有id =“upload”的表单的内容时如何调用此函数?

会很棒!

3 个答案:

答案 0 :(得分:1)

对于"我几乎是对的;我需要这样的事情"部分 - 您尝试

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

是' fileupload'是not an event which is what .on() is expecting这就是为什么它适用于你点击'案件,而不是在这里。

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

答案 1 :(得分:1)

您的问题可能是因为您正在$('#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
   }
 });
});

答案 2 :(得分:0)

使用此功能

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