我有时注意到,当我使用 jQuery 时,在调用 jQuery 函数后,我的 URL 末尾会添加一个额外的“#”。例如,一旦 jQuery 函数初始化,URL 'www.mywebsite.com' 将更改为 'www.mywebsite.com/#'。'www.testsite.com/users.php' 相同,更改为 'www.testsite.com/users.php#'。
为什么jQuery添加'#'?
我有时注意到,当我使用 jQuery 时,在调用 jQuery 函数后,我的 URL 末尾会添加一个额外的“#”。例如,一旦 jQuery 函数初始化,URL 'www.mywebsite.com' 将更改为 'www.mywebsite.com/#'。'www.testsite.com/users.php' 相同,更改为 'www.testsite.com/users.php#'。
为什么jQuery添加'#'?
如果您的函数是从链接 onclick 运行的,则需要使用 event.preventDefault()
通常这是因为您有一个带有 jQuery 点击处理程序的虚拟链接。通常会看到带有 href 的链接#
仅用于触发某些 JavaScript。
<a href="#" class="button">Go</a>
通过养成调用e.preventDefault()
点击处理程序的习惯可以轻松解决此问题:
$(function() {
$(".button").click(function(e) {
e.preventDefault();
...
});
});
您也可以使用return false
,但这具有停止事件传播的附加效果。如果我也想要那种效果,我喜欢e.stopPropagation()
明确添加。它使代码及其预期效果对未来的开发人员(或 6 个月后的我自己)更加明确和清晰。
处理点击事件时,您可能会得到这个。如果您不希望发生这种情况,只需在事件处理函数的末尾添加event.preventDefault()
或。return false