replaceWith
事件发生后正常发生的第一个on change
事件正常。出于某种原因,我的AJAX调用的replaceWith
部分中的2 success
不会触发。我可以添加alert("test");
,这很好。不知道我在这里缺少什么。
$('.addsheet1').on('change', function() {
$('.sheet1upprog').replaceWith('<i class="fa fa-spin fa-spinner"></i>'); //works fine
var id = $('.id').val();
var formdata = new FormData();
jQuery.each($('.addsheet1')[0].files, function(i, file) {
formdata.append('addsheet1', file);
});
$.ajax({
url: "addsheet1only.php?id="+id,
data : formdata,
type : "post",
cache: false,
contentType: false,
processData: false,
success: function(data){
if (data == 'ok') {
alert("test"); //works fine
$('.sheet1upprog').replaceWith('<i class="fa fa-check"></i>').delay(1000); //does not work
$('.sheet1upprog').replaceWith('<i class="fa fa-cloud-upload"></i>'); //does not work
}
},
failure: function(){
$(this).addClass("error");
}
});
return false;
});
答案 0 :(得分:3)
在第一个replaceWith
调用中,您已经删除了类sheet1upprog
的标记,因此以后无法使用(在成功回调中)。
我想你要找的是这个 -
$(".sheet1upprog").html("<new_html_content_here>");