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 回答