Я не уверен, почему это пузырится, но это так. Хотите знать, если у кого-нибудь есть идеи?
$('#file_upload').live('submit',function(event){
$('#file_upload').attr('action','io.cfm?action=updateitemfile&item_id='+$('.agenda-modal').attr('data-defaultitemid'));
$('iframe').load(function(){
$('.upload_output').empty();
$livepreview.agenda({
action:'get',
id:$('.agenda-modal').attr('data-defaultitemid'),
type:'item',
callback:function(json){
for(x in json[0].files){
$('.upload_output').append('<li class="file-upload"><a target="blank" href="io.cfm?action=getitemfile&item_file_id='+json[0].files[x].item_file_id+'">'+json[0].files[x].file_name+'</a> <a style="color:red" href="#deletefile-'+json[0].files[x].item_file_id+'">[X]</a></li>');
}
console.log('callback');
}
});
console.log('iframed');
});
console.log('go');
});
Итак, если я загружаю файлы, я получаю в консоли следующее:
go
iframe
callback
Если я делаю это второй раз подряд:
go
iframed
iframed
callback
callback
и трижды:
go
iframed
iframed
iframed
callback
callback
callback
и т.д.
Я предполагал, что, если бы событие live()
пузырилось, "go
" тоже всплыло бы, но это не так. Я пытался event.stropPropagation
почти везде внутри отправки, и .die()
подключался к $('#file_upload').die().live(...
примерно так.
Есть идеи?
P.S. Этот live()
вызов находится внутри загрузки документа jQuery ($(function(){...});
)