2015-03-30 49 views
0

我在ajax load()之後啓動一個函數,但是函數I貼心地調用了一個不起作用的函數。如何在load()之後啓動ajaxstuff()ajax load()後的調用函數()

function ajaxstuff(data) { 
    $.ajax({ 
     type: "POST", 
     url: "do-it.php", 
     data: {data}, 
     success: function() { 
      console.log('I got this far'); // this doesn't work/isn't called 
     } 
    }); 
} 

function doit() { 
    $('form').submit(function(e) { 
     e.preventDefault(); 
     var formData = new FormData(this); 
     console.log('I got this far'); // this works 
     ajaxstuff(formData); 
    } 
} 

$('.popup-loader').click(function() { 
    $(this).append('<div class="popup"></div>'); 
    $('.popup').load('popup.php', function() { 
     doit(); // this works 
    } 
}); 
+1

在ajaxstuff方法,我只看到了成功的回調。嘗試添加 錯誤:函數(xhr,textStatus,errorThrown){ }以查看是否收到任何錯誤。 – Vim 2015-03-30 21:07:27

+0

另外,我看到你正在發送FormData到ajax文章。設置,數據:數據, processData:false。 – Vim 2015-03-30 21:20:03

+0

也許開始閱讀文檔http://api.jquery.com/jquery.ajax/ 有沒有與Ajax「負載」的情況下,你有成功,失敗,總是 – iamwhitebox 2015-03-30 22:00:53

回答

-2

ajaxstuff函數中的語法錯誤。 data: {data},,大概應該是data: data,

此外,當你傳遞一個FORMDATA對象$阿賈克斯,你必須指定processData: falsecontentType: false

$.ajax({ 
    type: "POST", 
    url: "do-it.php", 
    data: data, 
    processData: false, 
    contentType: false, 
    success: function() { 
     console.log('I got this far'); 
    } 
}); 
-2

檢查錯誤在控制檯同樣的,在你的AJAX添加一個async選項。其設置爲FALSE(「設置異步爲false,意味着你在調用語句來完成你的函數的下一條語句前可以調用」):

function ajaxstuff(data) { 
    $.ajax({ 
     async: false, 
     type: "POST", 
     url: "do-it.php", 
     data: data, 
     success: function(result) { 
      console.log(result); //check in your console for errors 
     } 
    }); 
} 
+1

這與「成功」模塊沒有觸發無關 - 默認情況下爲true。 – wahwahwah 2015-03-30 21:09:18

+0

'async:false'被描述爲jQuery 1.8,他已經在使用成功回調。 – balzafin 2015-03-30 21:10:15