web-dev-qa-db-ja.com

href = "#"ページのトップに移動-防止しますか?

いくつかのjQuery関数を含むページがあります。ページ上のHTMLは次のようになります。

<a href="#" class="service">Open</a>

[開く]ボタンをクリックすると、非表示のパネルがスライドします。 jQuery自体はうまく機能しますが、ボタンをクリックすると、ページの上部にも移動します。

これはデフォルトの動作ですか?どのようにすればすべてのhref="#"私をページのトップに連れて行ってから。

注:IDを追加して、hrefにそのIDに転送するように指示できます。さまざまな理由(不必要なコードの追加を含む)でこれを行いたくありません。

44
L84

イベントハンドラーにe.preventDefault();を追加します(eがイベントを保持する変数の名前であると仮定):

$('.service').click(function(e) {
    e.preventDefault();
});
61
icktoofay
<a href="#!" class="service">Open</a>
82
MyroslavN
<a href="#" onclick="return false;" class="service">Open</a>

[〜#〜] or [〜#〜]

$(document).ready(function()
{ 
   var a = $(".service");
   a.click(function()
   {

       return false;

   });
});

[〜#〜] or [〜#〜]

$(document).ready(function()
{ 
   var a = $(".service");
   a.click(function(e)
   {

       e.preventDefault();

   });
});

[〜#〜] or [〜#〜]

<a href="#" onclick="event.preventDefault();" class="service">Open</a>
23
Ryan
$('service').click(function() {
<your code>
return false;
});

return falseは、「a」タグの標準動作をオーバーライドし、クリックされたときにブラウザがページの上部に戻るのを停止します。

0
Andreas