我在新创建的div上遇到了scrollTo的问题我通过append()添加到DOM。出于某种原因,我无法在代码中滚动到我想要的位置,它只能从控制台命令工作,或者如果我添加一个按钮并以这种方式调用滚动事件。
代码:
$('#history').scrollTo('max');
仅适用于控制台或附加到按钮。
编辑:历史div有溢出:auto,不确定是否导致它。
答案 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.