0

jQuery を使用すると、jQuery 関数が呼び出された後、余分な「#」が URL の末尾に追加されることに時々気付きました。たとえば、URL 'www.mywebsite.com' は、jQuery 関数が初期化されると 'www.mywebsite.com/#' に変わります。「www.testsite.com/users.php」も「www.testsite.com/users.php#」に変更されます。

jQueryが「#」を追加するのはなぜですか?

4

3 に答える 3

2

関数がリンク onclick から実行されている場合は、event.preventDefault() を使用する必要があります。

http://api.jquery.com/event.preventDefault/を参照してください。

于 2013-01-05T00:53:51.753 に答える
1

通常、これは、jQuery クリック ハンドラーを含むダミー リンクがあるためです。#一部の JavaScript をトリガーするためだけに使用される、href のリンクを目にすることはよくあります。

<a href="#" class="button">Go</a>

e.preventDefault()これは、クリック ハンドラを呼び出す習慣を付けることで簡単に解決できます。

$(function() {
    $(".button").click(function(e) {
        e.preventDefault();
        ...
    });
});

も使用できますがreturn false、これにはイベントの伝播を停止するという追加の効果があります。e.stopPropagation()その効果も必要な場合は、明示的に追加するのが好きです。これにより、将来の開発者 (または 6 か月後の私) にとって、コードとその意図する効果がより明確かつ明確になります。

于 2013-01-05T00:54:57.847 に答える
1

おそらく、クリックイベントを処理するときにこれを取得しています。これが発生したくない場合は、イベント ハンドラー関数の最後にevent.preventDefault()orを追加します。return false

于 2013-01-05T00:57:10.527 に答える