1

私はこれを実現しようとしています:

  1. 送信ボタンがフォームを送信できないようにする

  2. 要素をフェードアウトする

  3. 次に、フォームを送信します

しかし、アニメーションの無限ループで立ち往生しています! どうして??

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();
    });
});

.one()PS- の代わりにメソッドも試しました.submit()が、アニメーションが完了すると #postitron で送信メソッドが実行されなくなります:(

4

3 に答える 3

0

これは、イベントをにバインドしていてSUBMIT、フォームを作成して.animate callback functionいるSUBMITためです...無限ループが発生します。

これを試して :

.submitでイベントをバインドする代わりに、ボタンでイベントをformバインドします。.clicksubmit

$('#submit').click(function(e){
    e.preventDefault();
    $('#page').animate({opacity:0},400, function(){
        $('#postitron').submit();
    });
});

私はこれをテストしなかったことを心に留めておいてください。

于 2012-05-23T06:28:42.670 に答える
0

関数を事前定義し、その中でバインドを解除して送信してから、再送信することができます。それはハックですが、うまくいくかもしれません。

または、隠されていることを確認してから、次のように再送信することもできます。

var hidden = false;
$('#postitron').submit(function(e){
    if ( !hidden ) {
        e.preventDefault();
        $('#page').animate({opacity:0},400, function(){
            hidden = true;
            $('#postitron').submit();
        });
    }
});
于 2012-05-23T06:30:51.347 に答える