Аякс перестает работать после звонка
Я использую One Click Upload (ocupload.js) для загрузки вложений с пользовательской почтовой формой во временную папку на моем сервере.
После каждой загрузки, в ярлык добавляется небольшая метка с именем файла. Каждый ярлык имеет небольшую кнопку удаления. При нажатии кнопки удаления файл вложения удаляется из временной папки, а метка удаляется.
Базовый интерфейс приложения вещи.
Nog вот моя проблема: при нажатии на кнопку удаления, вложение удаляется из временной папки, а соответствующая метка удаляется из 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 заканчивается