30

私は現在、jTemplates を使用してクライアントにかなり大きなテーブルを作成しています。各行には、jQuery UI ダイアログを開くボタンがあります。ただし、ページを下にスクロールしてこれらのボタンのいずれかをクリックすると、jQuery ダイアログが開きますが、スクロール位置が失われ、ページが一番上に戻ります (ブロックと実際のダイアログが画面に表示されます)。この問題の原因を知っている人はいますか?

ありがとう。

4

4 に答える 4

71

ダイアログをポップする「ボタン」を実装するためにアンカータグを使用していますか? その場合、ダイアログを開くクリック ハンドラーが false を返すようにして、アンカー タグの既定のアクションが呼び出されないようにする必要があります。ボタンを使用している場合は、(ハンドラーから false を返すことによって) ボタンが送信されないようにし、ページを完全に更新する必要もあります。

例えば、

$('a.closeButton').click( function() {
     $('#dialog').dialog('open');
     return false;
});


<a class='closeButton'>Close</a>
于 2009-07-20T21:08:52.943 に答える
13

ボタンが html アンカー タグで動作する場合href="#"は、href を、たとえば、href="javascript:;"または href を無効にするために使用する他の方法で置き換えます。スクロールが発生する理由はhref="#"、ページの上部へのスクロールが原因です。

于 2013-04-27T06:54:23.320 に答える
7

このようにコードを変更します

$('a.closeButton').click( function(e) {
    e.preventDefault();
     $('#dialog').dialog('open');
});
于 2009-08-10T07:09:27.773 に答える
-2

あなたが試すことができます :

scrollTo(0, jQuery("body"));
于 2011-09-14T08:16:59.887 に答える