我使用此文件上传脚本:http://tutorialzine.com/2013/05/mini-ajax-file-upload-form/
其中有:
$('#upload').fileupload({
我的问题是,我动态加载内容,所以我认为我需要这样的东西(因为我从.click()函数中知道这个问题):
$(document).on('fileupload', '#upload', function () {
但这不起作用。任何人都可以帮助我,当动态加载带有id =“upload”的表单的内容时如何调用此函数?
会很棒!
答案 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);
});