替换成功的AJAX调用后没有触发

时间:2015-04-14 18:43:14

标签: jquery replacewith

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;
});

1 个答案:

答案 0 :(得分:3)

在第一个replaceWith调用中,您已经删除了类sheet1upprog的标记,因此以后无法使用(在成功回调中)。

我想你要找的是这个 -

$(".sheet1upprog").html("<new_html_content_here>");