いくつかのjQuery関数を含むページがあります。ページ上のHTMLは次のようになります。
<a href="#" class="service">Open</a>
[開く]ボタンをクリックすると、非表示のパネルがスライドします。 jQuery自体はうまく機能しますが、ボタンをクリックすると、ページの上部にも移動します。
これはデフォルトの動作ですか?どのようにすればすべてのhref="#"
私をページのトップに連れて行ってから。
注:IDを追加して、hrefにそのIDに転送するように指示できます。さまざまな理由(不必要なコードの追加を含む)でこれを行いたくありません。
イベントハンドラーにe.preventDefault();
を追加します(e
がイベントを保持する変数の名前であると仮定):
$('.service').click(function(e) {
e.preventDefault();
});
<a href="#!" class="service">Open</a>
<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>
$('service').click(function() {
<your code>
return false;
});
return false
は、「a」タグの標準動作をオーバーライドし、クリックされたときにブラウザがページの上部に戻るのを停止します。