0

新しく作成された div で scrollTo に問題があり、append() を介して DOM に追加しています。何らかの理由で、コード内から必要な場所にスクロールできません。コンソールコマンドからのみ機能するか、ボタンを追加してスクロールイベントをそのように呼び出した場合にのみ機能します。

コード:

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

コンソールからのみ動作するか、ボタンに接続されています。

編集:履歴divにはoverflow:autoがありますが、それが原因かどうかはわかりません。

4

2 に答える 2

0

scrollTo()これは、関数を呼び出す時点で実際には存在しない要素にアタッチしようとしていることを示しています。コンソールで機能するという事実は、これを示唆しています。その場合、1 つの方法は、たとえばライブラリのようなものを使用するか、これらの要素が追加されたらlivequery、単純にこれらの要素の関数を呼び出すことです。scrollTo()

于 2011-01-20T12:19:50.373 に答える
0

推測ですが、新しい要素を DOM に追加した直後に「scrollTo」を呼び出していますか?

その場合、DOM レイアウトは再計算される機会がなかった可能性があります。要素間の相対オフセット値は、現在のスクリプト処理が終了するまで更新されません。

考えられる 2 つの回避策:

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 に答える