2010-08-18 70 views
2

我正試圖在jQuery $ .post函數中執行以下fadeIn/fadeOut action爲什麼POST回調函數不起作用

$.post('Scenario/SaveScenario', function (data) { 
    $('<div class="save-alert">The current scenario has been saved.</div>') 
    .insertAfter($('.buttons')) 
    .fadeIn('slow') 
    .animate({ opacity: 1.0 }, 2000) 
    .fadeOut('slow', function() { 
     $(this).remove(); 
    }); 
}); 

但是,這不起作用,(顯然)沒有任何反應。 (我在Firebug中的函數內部放置了一個斷點,並且它永遠不會到達。)當場景被放入我的數據庫時,該帖子成功發生。我不認爲這是問題。

我測試了一下,只是將它作爲點擊事件添加到提交按鈕上,並且確實有效。

$(function() { 
    $('#SaveScenario').click(function() { 
     $('<div class="save-alert">The current scenario has been saved.</div>') 
     .insertAfter($('.buttons')) 
     .fadeIn('slow') 
     .animate({ opacity: 1.0 }, 2000) 
     .fadeOut('slow', function() { 
      $(this).remove(); 
     }); 
    }); 
}); 

關於我在做什麼的任何理論都是錯誤的?

+0

您確定請求成功回來嗎?響應在Firebug,Chrome或Fiddler中看起來如何? – 2010-08-18 22:14:32

+0

@Nick - Spot on。哈哈......看到我對薇薇的迴應。我今天贏得了我的noob點。 – JasCav 2010-08-19 14:53:28

回答

4

從jQuery的文檔:

如果有jQuery.post的請求()返回一個錯誤代碼,它會悄悄地失敗,除非劇本也被稱爲全球.ajaxError()方法。

所以後可能會被擊中服務器罰款和經歷,但是當後回來的jQuery(數據也許意想不到的形式)可能有某種錯誤或錯誤的,也許一般的排序回來的路(壞迴應代碼)?嘗試發送請求jQuery.ajax,並提供一個error處理程序來查看是否發生了某種錯誤。例如,如果您使用ajaxSetup並將dataType設置爲json,並且您沒有從服務器返回有效的JSON,那麼jQuery將因分析錯誤而死亡。

當你簡單地點擊http://your.site.com/Scenario/SaveScenario時,你會得到什麼?

+0

哇...我爲我所做的事贏得了noob分。我在SaveScenario操作中返回View()。因此,我從SaveScenario中獲得了500個(我沒有意識到數據庫仍然會得到提交,有趣的是)。所以,現在我重新回到輸入頁面,並且工作。 /嘆了一些日子... – JasCav 2010-08-19 14:53:04

+0

@Jason沒有擔心 - 我懷疑是這樣的(這就是爲什麼我提到「壞響應代碼」):) – 2010-08-19 18:38:34

+2

+1導致我的問題解決後,從後通話中刪除'json'因爲我沒有返回json。保存了我很多時間:) – 2012-02-21 11:23:03

相關問題