0

私はすでにDIV IDにスクロールするすべての方法をテストしていますが、うまくいきません。何かが間違っていることはわかっていますが、何がわからないのですか。これは私のjqueryスクリプトです

$("#sub").click( function() {

$("#myForm").validate({
      rules: {
        page: {
          required: true,
          url: true
        },
        link: {
          required: true,
          url: true
        }
      },
      submitHandler: function(form) {
        $.post( $("#myForm").attr("action"), $("#myForm :input").serializeArray(), 
        function(info){ 
            $("#result").html(info); 
        });

        clearInput();

        $("#myForm").submit( function() {
            return false;   
        });
                    }
    });
});

function clearInput() {
    $('html, body').animate({
        scrollTop: $("#result").offset().top
    }, 2000);
}

何かが混ざっているのかどうかはわかりませんが、jqueryはスクロールしませんscrolltop()。新しいphpファイルで関数をテストし、正常に動作しますが、このファイルで使用するとうまくいきません。

アップデート:

助けてくれてありがとう netblognet 私はすでにそれを手に入れました、私はこれを作ります:

$("#sub").click( function() {

    $("#myForm").validate({
          rules: {
            page: {
              required: true,
              url: true
            },
            link: {
              required: true,
              url: true
            }
          },
          submitHandler: function(form) {
            $.post( $("#myForm").attr("action"), $("#myForm :input").serializeArray(), 
            function(info){ 
                $("#result").html(info); 
                //$(this).animate(function(){
                $('html, body').animate({
                    scrollTop: $("#result").offset().top
                     }, 2000);
            //});
            });


            $("#myForm").submit( function() {
                return false;
            });
                        }
        });
});

収入が発生するのと同じ場所にコードを置きます:D

4

1 に答える 1

6

サブミットのコールバックでアニメーションを実行する必要があります。初期関数が実行されると、コールバックがトリガーされます。(この場合は送信機能です。)

$("#myForm").submit( function() {
    $('html, body').animate({
         scrollTop: $("#result").offset().top
    }, 2000);
    return false;
});

フォームが動的に読み込まれる場合は、ハンドラーをアタッチする必要があります。

$('#myForm').on('submit', function() {
    $('html, body').animate({
         scrollTop: $("#result").offset().top
    }, 2000);
    return false;
});
于 2013-03-04T06:22:22.080 に答える