2015-04-14 61 views
0

on change事件正常工作後發生的第一個replaceWith事件正常。出於某種原因,我的AJAX調用的success部分中的2 replaceWith不會觸發。我可以添加alert("test");,這工作正常。不知道我在這裏錯過了什麼。replaceWith成功AJAX調用後沒有觸發

$('.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

你能添加你正在試圖改變HTML的部分? –

回答

3

在第一replaceWith呼叫時,您已經刪除與sheet1upprog類的標籤,所以它是不可用隨後的時間(在你的成功回調)。

我猜你正在尋找的是這樣的 -

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

所以'replaceWith'的功能就像'replaceClass'? –

+0

@CesarBielich - 它有助於閱讀文檔:http://api.jquery.com/replacewith/ – JDB

+0

replaceWith用您指定的表達式替換整個標籤及其內部內容。 – Sam