jQuery插件scrollTo仅适用于控制台

时间:2011-01-20 12:02:27

标签: javascript jquery scrollto

我在新创建的div上遇到了scrollTo的问题我通过append()添加到DOM。出于某种原因,我无法在代码中滚动到我想要的位置,它只能从控制台命令工作,或者如果我添加一个按钮并以这种方式调用滚动事件。

代码:

$('#history').scrollTo('max');

仅适用于控制台或附加到按钮。

编辑:历史div有溢出:auto,不确定是否导致它。

2 个答案:

答案 0 :(得分:0)

这表示您正在尝试将scrollTo()附加到您在其上调用函数时实际上不存在的元素。它在控制台中工作的事实会暗示这一点。 如果是这种情况,一种方法是使用例如像livequery这样的库,或者只要在这些元素被追加后调用scrollTo()函数就可以了。

答案 1 :(得分:0)

只是一个猜测,但是在将新元素附加到DOM后,您是否立即调用“scrollTo”?

如果是这种情况,则DOM布局可能没有机会重新计算。在当前脚本处理完成之前,元素之间的相对偏移值尚未更新。

两种可能的解决方法:

1. setTimeout("$('#history').scrollTo('max')", 1); // Call this after you append your element.  This will allow the stack to unwind and update the DOM positions

2. $('#history').scrollTo(0, 9999);  // Where "9999" is a value far larger than the actual height of the control.