Php 将Uploadify应用于新的DOM元素
我正在使用jQuery插件将视频上传到我的服务器。页面加载后,它会立即查找具有特定类名的所有文件输入元素,并调用一个实例化Uploadify函数的函数:Php 将Uploadify应用于新的DOM元素,php,javascript,jquery,uploadify,Php,Javascript,Jquery,Uploadify,我正在使用jQuery插件将视频上传到我的服务器。页面加载后,它会立即查找具有特定类名的所有文件输入元素,并调用一个实例化Uploadify函数的函数: $(document).ready(function(){ $(".video_upload").each(function(){ var t = $(this); var f = $("#"+i).siblings(".show_file"); f.hide(); setupUpl
$(document).ready(function(){
$(".video_upload").each(function(){
var t = $(this);
var f = $("#"+i).siblings(".show_file");
f.hide();
setupUpload(t,f);
});
});
function setupUpload(t,f){
t.uploadify({
'uploader' : '<?=site_url('../assets/js/uploadify/uploadify.swf');?>',
'script' : '<?=site_url('utility/send_vid');?>',
'cancelImg' : '<?=site_url('../assets/js/uploadify/cancel.png');?>',
'folder' : '/uploads/',
'auto' : true,
'onComplete' : function(event, ID, fileObj, response, data) {
var r = $.parseJSON(response);
if(r.error){
$("#"+i).siblings(".error").html(r.reason).show();
}else{
$("#"+i).siblings("#video_href").val(r.src);
setTimeout(function(){
f.children('.file_name').text(r.nice_name);
f.show();
},1000);
}
}
});
}
ID是新元素的ID,但我只是将它用作一个临时选择器,直到我知道整个过程可以运行,并将使用更具动态性的东西…要使其正常工作,您需要将所有内容包装在一个函数中,该函数在页面加载时调用,并且在将来需要时调用。比如:
function setupUpload(){
$(".video_upload").each(function(){
var t = $(this);
if(t.siblings('.uploadifyQueue').length==0){
var f = t.siblings(".show_file");
t.uploadify({
'uploader' : '<?=site_url('../assets/js/uploadify/uploadify.swf');?>',
'script' : '<?=site_url('utility/send_vid');?>',
'cancelImg' : '<?=site_url('../assets/js/uploadify/cancel.png');?>',
'folder' : '/uploads/',
'auto' : true,
'onComplete' : function(event, ID, fileObj, response, data) {
var r = $.parseJSON(response);
if(r.error){
t.siblings(".error").html(r.reason).show();
}else{
t.siblings("#video_href").val(r.src);
setTimeout(function(){
f.children('.file_name').text(r.nice_name);
f.show();
},1000);
}
}
});
}
});
}
您只需在jQuery准备就绪时或当用户单击按钮插入新DOM元素时调用它。当您在创建输入元素后调用setupUpload方法时,要传递哪些参数?@shankarsangli我编辑了这个问题,并添加了有关参数的更多信息。我在您的代码中声明了这些参数$.video\u upload.each?抱歉,这是不推荐使用的-我删除了I变量并对其进行重构以提高效率。即使在这之后,问题仍然存在。我现在已经解决了,谢谢你的帮助。你是说你的问题完全解决了?
function setupUpload(){
$(".video_upload").each(function(){
var t = $(this);
if(t.siblings('.uploadifyQueue').length==0){
var f = t.siblings(".show_file");
t.uploadify({
'uploader' : '<?=site_url('../assets/js/uploadify/uploadify.swf');?>',
'script' : '<?=site_url('utility/send_vid');?>',
'cancelImg' : '<?=site_url('../assets/js/uploadify/cancel.png');?>',
'folder' : '/uploads/',
'auto' : true,
'onComplete' : function(event, ID, fileObj, response, data) {
var r = $.parseJSON(response);
if(r.error){
t.siblings(".error").html(r.reason).show();
}else{
t.siblings("#video_href").val(r.src);
setTimeout(function(){
f.children('.file_name').text(r.nice_name);
f.show();
},1000);
}
}
});
}
});
}