重複の可能性:
JavaScriptをトリガーするリンクをクリックしたときに、Webページが上部にスクロールしないようにするにはどうすればよいですか?
私はjqueryのslidetoggleを使ってdivを表示/非表示にしています。スライドを制御する要素は、href = "#"を持つテキストリンク(<\ a>内の一部のテキスト)であるため、リンク(下線、カーソルの変化)のように見えます。
問題は、リンクをクリックすると、スライド効果に加えて、ページが一番上にスクロールすることです。
href = "#"をhref = ""に置き換えてみましたが、divの表示/非表示効果が無効になっています。タグName = "somename"に追加して、hrefをhref = "#somename"に設定できると思いますが、そのようなトリックは使用しません。
なぜhref = "#"はページを上にスクロールするのですか?
どんなアイデアも高く評価されます
いくつかのオプション:
return false;
_を配置すると、hrefは追跡されません。javascript:void(0);
に変更しますハンドラーのイベントでpreventDefault
を呼び出します。
_function( e ) {
e.preventDefault();
// your event handling code
}
_
追加する必要がありますreturn false;
をクリックハンドラーに追加します。
これにより、ブラウザはクリックのデフォルトアクションを実行できなくなります。
他の人があなたに解決策を与えました。しかし、具体的にあなたの質問に答えるために、#
は現在のページを参照します。タグの解釈は、タグのtopを表示することなので、#
タグは、現在のページの上部にスクロールします。
_return false
_またはevent.preventDefault()
は、デフォルトのアクションが発生しないようにするためにクリックイベントハンドラーで必要なものです。 _<a>
_のhref
を含む_#
_要素は、ブラウザのビューポートをデフォルトのアクションとしてページの上部にジャンプさせます。