我正在尝试在 jQuery $.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();
});
});
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用并且(显然)没有任何反应。(我在 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();
});
});
});
Run Code Online (Sandbox Code Playgroud)
关于我做错了什么的任何理论?
来自 jQuery 文档:
如果使用 jQuery.post() 的请求返回错误代码,它将静默失败,除非脚本也调用了全局 .ajaxError() 方法。
因此,该帖子可能会正常访问服务器并通过,但是当帖子返回 jQuery 时可能会出现某种错误(可能是意外的数据形式),或者可能在返回途中出现一般类型的错误(不好的响应代码)?尝试发送请求jQuery.ajax并为其提供error处理程序以查看是否发生了某种错误。例如,如果您使用ajaxSetup并设置了dataTypetojson并且没有从服务器返回有效的 JSON,jQuery 将因解析错误而死亡。
当你简单地点击时你会得到什么http://your.site.com/Scenario/SaveScenario?