我正在尝试在jQuery $ .post函数中执行以下fadeIn/fadeOut action。
$.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 :(得分:4)
来自jQuery文档:
如果使用jQuery.post()的请求返回错误代码,除非脚本还调用了全局.ajaxError()方法,否则它将无提示失败。
所以帖子可能会很好地打击服务器,但是当帖子回到jQuery(可能是一种意想不到的数据形式)时可能会出现某种错误,或者在回来的路上可能会出现一般错误(一个糟糕的回复代码)?尝试使用jQuery.ajax
发送请求并提供error
处理程序,以查看是否发生了某种错误。例如,如果您使用ajaxSetup
并将dataType
设置为json
并且未从服务器返回有效的JSON,则jQuery将因解析错误而死亡。
当您点击http://your.site.com/Scenario/SaveScenario
时,您会得到什么?