【发布时间】:2012-05-23 05:00:53
【问题描述】:
在发布表单操作之前,我必须淡出页面。我不确定这是否可能,所以我不知道从哪里开始。
也就是说,我确实知道如何为链接做这件事......下面的javascript。感谢您的帮助!
我需要从 HTML 表单中截取 post 方法
<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
【问题讨论】:
-
试试我的代码和 jsfiddle ...如果它适用于您的页面,请告诉我...
标签: jquery html forms post fade