jQuery在URL中添加额外的“#”?

时间:2013-01-05 00:50:10

标签: javascript jquery

我有时会注意到,当我使用jQuery时,在调用jQuery函数后,会在URL的末尾添加额外的“#”。例如,一旦jQuery函数初始化,URL“www.mywebsite.com”将更改为“www.mywebsite.com/#”。 “www.testsite.com/users.php”的相同内容更改为“www.testsite.com/users.php#”。

为什么jQuery会添加'#'?

3 个答案:

答案 0 :(得分:2)

如果您的功能是从onclick链接运行的,则需要使用event.preventDefault()

请参阅http://api.jquery.com/event.preventDefault/

答案 1 :(得分:1)

通常这是因为你有一个带有jQuery点击处理程序的虚拟链接。通常会看到href为#的链接仅用于触发某些JavaScript。

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

通过养成在点击处理程序中调用e.preventDefault()的习惯,轻松解决此问题:

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

您也可以使用return false,但这会增加停止事件传播的效果。如果我也想要这样的效果,我想明确地添加e.stopPropagation()。它使得代码及其预期效果对于未来的开发人员(或者我自己在6个月内)更明确和清晰。

答案 2 :(得分:1)

在处理点击事件时,您可能会得到此信息。如果您不希望发生这种情况,只需在事件处理函数的末尾添加event.preventDefault()return false