2010-08-18 73 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

相关问题