私は現在、jTemplates を使用してクライアントにかなり大きなテーブルを作成しています。各行には、jQuery UI ダイアログを開くボタンがあります。ただし、ページを下にスクロールしてこれらのボタンのいずれかをクリックすると、jQuery ダイアログが開きますが、スクロール位置が失われ、ページが一番上に戻ります (ブロックと実際のダイアログが画面に表示されます)。この問題の原因を知っている人はいますか?
ありがとう。
ダイアログをポップする「ボタン」を実装するためにアンカータグを使用していますか? その場合、ダイアログを開くクリック ハンドラーが false を返すようにして、アンカー タグの既定のアクションが呼び出されないようにする必要があります。ボタンを使用している場合は、(ハンドラーから false を返すことによって) ボタンが送信されないようにし、ページを完全に更新する必要もあります。
例えば、
$('a.closeButton').click( function() {
$('#dialog').dialog('open');
return false;
});
<a class='closeButton'>Close</a>
ボタンが html アンカー タグで動作する場合href="#"
は、href を、たとえば、href="javascript:;"
または href を無効にするために使用する他の方法で置き換えます。スクロールが発生する理由はhref="#"
、ページの上部へのスクロールが原因です。
このようにコードを変更します
$('a.closeButton').click( function(e) {
e.preventDefault();
$('#dialog').dialog('open');
});
あなたが試すことができます :
scrollTo(0, jQuery("body"));