Javascript Ajax在调用后停止工作
我使用一键上传ocupload.js将带有自定义邮件表单的附件上传到服务器上的临时文件夹中 每次上传后,都会在dropzone中添加一个带有文件名的小标签。每个标签都有一个小的删除按钮。按下移除按钮时,附件文件将从临时文件夹中移除,标签也将移除 基本的附件用户界面的东西 Nog我的问题是:当单击remove按钮时,附件将从temp文件夹中删除,相应的标签将从dropzone中删除,因此我的Ajax调用工作正常。但在此之后,我尝试的每个ajax调用都失败了。不仅删除附件,还上载新附件。根本没有反应 上载脚本:Javascript Ajax在调用后停止工作,javascript,jquery,ajax,livequery,ocupload,Javascript,Jquery,Ajax,Livequery,Ocupload,我使用一键上传ocupload.js将带有自定义邮件表单的附件上传到服务器上的临时文件夹中 每次上传后,都会在dropzone中添加一个带有文件名的小标签。每个标签都有一个小的删除按钮。按下移除按钮时,附件文件将从临时文件夹中移除,标签也将移除 基本的附件用户界面的东西 Nog我的问题是:当单击remove按钮时,附件将从temp文件夹中删除,相应的标签将从dropzone中删除,因此我的Ajax调用工作正常。但在此之后,我尝试的每个ajax调用都失败了。不仅删除附件,还上载新附件。根本没有反应
$("#attachment").livequery(function(){
$(this).upload({
name: 'xfile',
action: '/ajax/upload',
params: {action:'attachment',folder:'/tmp/mails/new'},
onSelect: function(){
console.log('file selected');
},
onSubmit: function() {
console.log('file submitted');
},
onComplete: function(response){
response = jQuery.parseJSON(response);
var $attachment = $('#attachment_dropzone .attachment.template').clone();
//fill template
$attachment.find('.name').html(response.filename);
$attachment.attr('data-filename',response.filename);
$attachment.attr('data-path',response.path);
//add label
$attachment.removeClass('template');
$attachment.removeAttr('style');
$('#attachment_dropzone').append($attachment.clone());
}
})
});
和移除处理程序
$('#attachment_dropzone .attachment .remove').livequery(function(){
$attachment = $(this).parent().parent();
$(this).on('click',function(){
console.log('start remove');
$.post('/ajax/action', { action: 'remove_attachment', filename: $attachment.data('filename'), path: $attachment.data('path') }, function(data){
console.log('remove callback');
if (data == 'success'){
console.log('remove success');
$attachment.remove();
}else{
alert(data);
}
})
})
});
如您所见,我使用livequery.js来确保脚本也能在动态添加的容器上工作
我可以上传任意数量的附件,没有问题,当我删除一个附件时,整个ajax故事就结束了您是否查看了调试器的网络面板以查看发送到服务器的内容,或者是否有任何请求?我不知道livequery是如何工作的,但我可以说它完全不必要,您可以简单地将on与委托一起使用,例如$'attachment\u dropzone'。单击,'.remove',函数{//perform remove};