我在新创建的 div 上遇到了 scrollTo 问题,我通过 append() 添加到 DOM。出于某种原因,我无法从代码中滚动到我想要的位置,它只能通过控制台命令工作,或者如果我添加一个按钮并以这种方式调用滚动事件。
代码:
$('#history').scrollTo('max');
仅适用于控制台或附加到按钮。
编辑:历史 div 有溢出:自动,不确定是否是导致它的原因。
我在新创建的 div 上遇到了 scrollTo 问题,我通过 append() 添加到 DOM。出于某种原因,我无法从代码中滚动到我想要的位置,它只能通过控制台命令工作,或者如果我添加一个按钮并以这种方式调用滚动事件。
代码:
$('#history').scrollTo('max');
仅适用于控制台或附加到按钮。
编辑:历史 div 有溢出:自动,不确定是否是导致它的原因。
这表明您正在尝试附加scrollTo()
到在您调用函数时实际上并不存在的元素。它在控制台中工作的事实表明了这一点。如果是这种情况,一种方法是使用例如类库,或者在添加这些元素livequery
后简单地调用这些元素上的函数。scrollTo()
只是一个猜测,但是您是否在将新元素附加到 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.