在发布表单操作之前,我必须淡出页面。我不确定这是否可能,所以我不知道从哪里开始。
也就是说,我确实知道如何为链接做这件事......下面的javascript。谢谢你的帮助!
我需要拦截来自的 post 方法的 HTML 表单
<form id="postitron" method="post" action="/postitron/answertron.php">
我用于anchor
标签的 JavaScript
var $linkLocation;
function redirectPage(){
window.location = $linkLocation;
}
$('a.transition').click(function(event){
event.preventDefault();
$linkLocation = this.href;
$('#page').animate({opacity:0},400, function(){
redirectPage();
});
});
更新:
这么多答案!谢谢!
我已经实现了全面推荐的要点,并且得到了无限循环的动画..我错过了什么?
我制作了一个 JSFiddle 来演示......它不会在无限循环中动画......但它也不会返回 404。奇怪的!?
HTML
<form id="postitron" method="post" action="/postitron/answertron.php">
<input type="hidden" name="acces" value"yes">
<input id="submit" type="submit" value="DOIT">
</form>
JavaScript
$('#postitron').submit(function(e){
e.preventDefault();
$('#page').animate({opacity:0},400, function(){
$('#postitron').submit();
});
});
更新#2
@Ahren 建议 @Priyank Patel 对 .one() 方法的使用会阻止动画无限循环,它确实做到了(耶!),但我的控制台现在返回一个阻止表单提交的错误:
未捕获的类型错误:对象# 的属性“提交”不是函数
这是更新的 JavaSript
$('#postitron').one('submit', function(e){
e.preventDefault();
$('#page').animate({opacity:0},400, function(){
$('#postitron').submit();
});
});
更新#3
进一步考虑... .one() 方法为元素执行一次处理程序.. 是不是在动画消失后阻止执行相同的 submit() 方法?
更新#4