web-dev-qa-db-ja.com

jQuery UIダイアログをポップアップするときにページの先頭にスクロールしないようにするにはどうすればよいですか?

私は現在、jTemplatesを使用してクライアント上にかなり大きなテーブルを作成しています。各行には、jQueryUIダイアログを開くボタンがあります。ただし、ページを下にスクロールしてこれらのボタンの1つをクリックすると、jQueryダイアログが開きますが、スクロール位置が失われ、ページが先頭に戻ります(ブロックと実際のダイアログが画面に表示されます)。誰かがこの問題を引き起こす可能性のあるものを見たり知ったりしましたか?

ありがとう。

29
Kiwik

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

例えば、

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


<a class='closeButton'>Close</a>
69
tvanfosson

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

12