-2
我的函數有點問題。 當我執行一個多次啓動Ajax調用的函數時,它每次都會調用呼叫的次數。 例如,我想第一次發表評論,一切都很順利。但如果我想發送另一個,它會發送兩次。如果我再做一次,它會發送三次。 如果你能幫助我,這將是偉大的:D 在此先感謝。避免ajax請求的乘法
的Javascript:
$('.modifier').live('click',function(e){
e.preventDefault();
$('#error').hide();
var form = document.querySelector('form')
var formdata = new FormData(form);
formdata.append('fichier', window.file[0]);
//console.log(window.file[0]);
$('input[name=titre]').val('');
$('input[name=fichier]').val('');
$('textarea[name=description]').val('');
window.request_upload = $.ajax({
xhr: function()
{
var xhr = new window.XMLHttpRequest();
//Upload progress
xhr.upload.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
var percentComplete = evt.loaded/evt.total;
$('.chargement').show();
$('.chargement> #progress_bar').css({'width' : percentComplete*100 + '%'}).text(Math.round(percentComplete*100) + '%');
//console.log(percentComplete);
}
}, false);
return xhr;
},
url: "foobar.php",
type: "POST",
data: formdata,
async: true ,
cache: false,
contentType: false,
processData: false
})
.done(function(data){
var json = $.parseJSON(data);
//console.log('Data : '+data);
//console.log('L\'erreur : '+json.erreur);
if(json.erreur == 0)
{
//console.log(json.titre);
var titre = json.titre;
$.notify('Votre photo : "'+titre+'" a bien été envoyé !',{autoHideDelay: 10000, className: 'success'});
$('.drop_depot').removeClass('hover');
$('.chargement').hide();
$(this).removeClass('hover');
$('.drop_depot').empty().append('<span>'+options.message+'</span>');
$('.drop_depot').css({'width': '30%', 'height': '100px' });
$(window).resize();
$('input[type=file]').val('');
}
else{
$('.chargement').hide();
$('#error').show().after(json.erreur + ' ' + json.erreurs);
}
});
}
});
我通過加載這個腳本:$ .getScript()函數。如果它可以幫助...
粘貼您嘗試使用的代碼 –
聽起來像是在複合元素上的點擊處理程序。你的代碼在哪裏?很難排除我們看不到的東西 – charlietfl
這是它。謝謝 –