在错误和焦点的情况下,jquery滚动到特定的div位置

我有一个隐藏的div,在我的表单中有特定的错误消息。 在表单提交之前,我运行一个validation例程来检查是否所有必填字段都填充了一些文本。 如果没有,则在文本字段正上方可以看到具有“redAlert”类的div。 我还希望在显示错误消息时,对话框窗口向右滚动到此位置。 我知道有很多插件可用于此,但我想使用简单的Jquery来做。 我试图A)使用类redAlert找到第一个可见的div,b)通过调用此div上的.offset()然后c)在窗口对象上调用.scroll()找到它的位置但是我没有得到这个上class。 如果我完全错过了某些内容或者我的语法无效,请告诉我(我经常发现自己在使用Jquery时遇到语法错误)。 以下是我的代码。 另外 – 这只找到了可见的div(假设一次只有一个错误div),你能不能给我一个选择器来查找特定类的第一个可见div。

var errorDiv = $('.redAlert:visible').attr("id"); var scrollPos = $("#"+errorDiv ).offset(); //alert(scrollPosition); // This alert always says 'null', why ? $(window).scroll(scrollPos); //Also tried scrollTo(); 

非常感谢提前。

 var errorDiv = $('.redAlert:visible').first(); var scrollPos = errorDiv.offset().top; $(window).scrollTop(scrollPos); 

演示: http //jsfiddle.net/Cjuve/2/

我不认为它会成功。

看看我留下的代码

 $('html, body').animate({ scrollTop: ($('.error').first().offset().top) },500);