我有时会注意到,当我使用jQuery时,在调用jQuery函数后,会在URL的末尾添加额外的“#”。例如,一旦jQuery函数初始化,URL“www.mywebsite.com”将更改为“www.mywebsite.com/#”。 “www.testsite.com/users.php”的相同内容更改为“www.testsite.com/users.php#”。
为什么jQuery会添加'#'?
答案 0 :(得分:2)
如果您的功能是从onclick链接运行的,则需要使用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
。