jQuery:首先和.first()在Chrome / Safari和FireFox / IE8中表现不同

时间:2014-09-29 19:48:51

标签: jquery

我正在使用jQuery来验证表单,在提交时我想滚动到我设置的类.inputError的第一个实例:

$('#form').submit(function(e) {
    e.preventDefault();
    $('input').each(function(){
        inputCheck.call(this);
    });
    errors = $('input.inputError').length;
    if (errors > 0) {
        $('body').scrollTop($('.inputError').first().offset().top-30);
    } else {
        submitForm();
    }
});

这在Chrome / Safari中运行良好,但在FireFox和IE8中,它会转到类.inputError最后实例而不是第一个。我尝试过使用$('.inputError:first).first()都会产生相同的结果。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您应该使用

$('body, html').scrollTop(... 

或者

$(window).scrollTop(... 

如果滚动条是全局的,因为滚动条属于不同浏览器中的不同元素。

以下是一些简单的JS解决方案,如果有人在将来需要它 - >
Cross-browser method for detecting the scrollTop of the browser window

相关问题