-2

これが私が始めたものです、

   $("a[href='#top']").click(function() {
      $("html, body").animate({ scrollTop: 0 }, "slow");
   return false;
    });

これはうまく機能します

<a href="#top">...</a>

ただし、リンクなしで機能する同様の何かが必要です...

<li id="top">....</li>

私はこれを試しました

  $("#top").click(function() {
          $("html, body").animate({ scrollTop: 0 }, "slow");
          return false;
        });

しかし、それは私の側では機能しません。

4

1 に答える 1

4

問題はJavaScriptではなくHTMLにあります。idHTMLに同じ属性を持つ2つの要素を含めることは無効です。jQuery(実際には基盤となるJavaScript)は、IDセレクターが使用されている場合にのみ、これらの要素の最初#topのものを選択するため、を選択し<a>ます。のセレクターli#topはより制限されていますが、要素の順序を逆にすると同様の効果が見られます:http: //jsfiddle.net/WRmPz/10/

この理由や他の多くの理由から、すべての要素に一意のIDが必要です。

ちなみに、return falseは必要ありません<li><a>なしの場合も必要ありませんhref)。後者を使用する場合は、イベントオブジェクトを渡して、 http e.preventDefault()//fuelyourcoding.com/jquery-events-stop-misusing-return-false/を呼び出すことをお勧めします。

于 2012-12-28T23:00:54.460 に答える