28

重複の可能性:
javascript をトリガーするリンクをクリックしたときに Web ページが一番上にスクロールしないようにするにはどうすればよいですか?

jquery の slidetoggle を使用して、div の表示/非表示を切り替えています。スライドを制御する要素は、href="#" を持つテキスト リンク (<\a> 内のテキスト) であるため、リンク (下線、カーソルの変更) のように見えます。

問題は、リンクをクリックすると、スライド効果に加えて、ページが一番上にスクロールすることです。

href="#" を href="" に置き換えてみましたが、div の表示/非表示効果が無効になります。タグ Name="somename" に追加して、href を href="#somename" に設定できると思いますが、そのようなトリックは使用したくありません。

href="#" がページを一番上までスクロールするのはなぜですか?

どんなアイデアでも大歓迎です

4

4 に答える 4

76

いくつかのオプション:

  1. クリックハンドラーreturn false;の下部に配置すると、href は追跡されません。
  2. href を次のように変更します。javascript:void(0);
  3. ハンドラーでイベントを呼び出しpreventDefaultます。

    function( e ) {
      e.preventDefault();
      // your event handling code
    }
    
于 2010-01-07T23:02:57.483 に答える
5

return false;クリック ハンドラに追加する必要があります。
これにより、ブラウザはクリックに対してデフォルトのアクションを実行できなくなります。

于 2010-01-07T23:02:38.410 に答える
2

return falseまたはevent.preventDefault()、デフォルト アクションが発生しないようにするために、クリック イベント ハンドラーで必要なものです。ofを<a>持つ要素は、ブラウザの ビューポートをデフォルト アクションとしてページの上部にジャンプさせます。href#

于 2010-01-07T23:12:02.057 に答える
1

他の人があなたに解決策を与えました。しかし、あなたの質問に具体的に答えるに#は、現在のページを参照してください。タグの解釈は、タグの上部を表示することであるため、タグをクリックする#と、現在のページの上部にスクロールします。

于 2010-01-07T23:08:20.210 に答える