0

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

代码:

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

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

编辑:历史 div 有溢出:自动,不确定是否是导致它的原因。

4

2 回答 2

0

这表明您正在尝试附加scrollTo()到在您调用函数时实际上并不存在的元素。它在控制台中工作的事实表明了这一点。如果是这种情况,一种方法是使用例如类库,或者在添加这些元素livequery后简单地调用这些元素上的函数。scrollTo()

于 2011-01-20T12:19:50.373 回答
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.  
于 2011-01-20T12:20:27.200 回答