jQuery を使用すると、jQuery 関数が呼び出された後、余分な「#」が URL の末尾に追加されることに時々気付きました。たとえば、URL 'www.mywebsite.com' は、jQuery 関数が初期化されると 'www.mywebsite.com/#' に変わります。「www.testsite.com/users.php」も「www.testsite.com/users.php#」に変更されます。
jQueryが「#」を追加するのはなぜですか?
jQuery を使用すると、jQuery 関数が呼び出された後、余分な「#」が URL の末尾に追加されることに時々気付きました。たとえば、URL 'www.mywebsite.com' は、jQuery 関数が初期化されると 'www.mywebsite.com/#' に変わります。「www.testsite.com/users.php」も「www.testsite.com/users.php#」に変更されます。
jQueryが「#」を追加するのはなぜですか?
関数がリンク onclick から実行されている場合は、event.preventDefault() を使用する必要があります。
通常、これは、jQuery クリック ハンドラーを含むダミー リンクがあるためです。#
一部の JavaScript をトリガーするためだけに使用される、href のリンクを目にすることはよくあります。
<a href="#" class="button">Go</a>
e.preventDefault()
これは、クリック ハンドラを呼び出す習慣を付けることで簡単に解決できます。
$(function() {
$(".button").click(function(e) {
e.preventDefault();
...
});
});
も使用できますがreturn false
、これにはイベントの伝播を停止するという追加の効果があります。e.stopPropagation()
その効果も必要な場合は、明示的に追加するのが好きです。これにより、将来の開発者 (または 6 か月後の私) にとって、コードとその意図する効果がより明確かつ明確になります。
おそらく、クリックイベントを処理するときにこれを取得しています。これが発生したくない場合は、イベント ハンドラー関数の最後にevent.preventDefault()
orを追加します。return false