AJAX 调用成功后 replaceWith 未触发
replaceWith not firing after successful AJAX call
在 on change
事件之后发生的第一个 replaceWith
事件运行良好。由于某种原因,我的 AJAX 调用的 success
部分中的 2 replaceWith
没有触发。我可以添加 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;
});
在第一个 replaceWith
调用中,您已经删除了带有 class sheet1upprog
的标签,因此它在后续时间(在您的成功回调中)不可用。
我猜你要找的是这个 -
$(".sheet1upprog").html("<new_html_content_here>");
在 on change
事件之后发生的第一个 replaceWith
事件运行良好。由于某种原因,我的 AJAX 调用的 success
部分中的 2 replaceWith
没有触发。我可以添加 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;
});
在第一个 replaceWith
调用中,您已经删除了带有 class sheet1upprog
的标签,因此它在后续时间(在您的成功回调中)不可用。
我猜你要找的是这个 -
$(".sheet1upprog").html("<new_html_content_here>");