javascript - 如何在 javascript 锚链接中避免 href="#"
问题描述
除了使用之外,还有更好的方法来定义执行 javascript 的锚链接href="#"
吗?我不喜欢使用此 href 的主要原因是它使浏览器历史记录无效。后退按钮只是从 URL 中删除“#”。如果您使用任何类型的返回链接,除非他们单击两次,否则它将不起作用。
在我的 Javascript 是内联的情况下,我可以使用href="javascript:func()"
,但是当侦听器从外部脚本文件附加时,这将不起作用。
所以我只是在寻找一个更干净的方向来指向我的空锚。
解决方案
如果您“必须”<a>
为您的操作使用标签,在这种情况下,我更喜欢在事件侦听器中添加 preventDefault。这可以防止将“#”添加到 URL。
window.onload = function() {
document.getElementById("noHash").addEventListener("click", function(e) {
e.preventDefault();
console.log("Hi There!");
});
}
<a href="#" id="noHash">Say Hi</a>
推荐阅读
- python - python包元数据最佳实践
- angular - 错误类型错误:无法使用 {{myvideo[currentSlideIndex]?.title}} 在 Object.eval [as updateRenderer] 处读取未定义的属性“0”
- python - 使用python遇到整数时替换'='符号
- flutter - 如何在getx中将变量重置为默认值?
- c# - 我可以用脚本控制 Lighting2D 强度吗?(统一 C#)
- sql - 用连接到原始 SQL 表的表字符串事件填充的列
- html - 只有当内容高度适合屏幕高度时,我才能在固定位置设置一些东西?
- mongodb - 如何使用 mongodb 使用稳定排序获得结果
- git - POST git-receive-pack 后 git push 挂起并失败
- sql - 存储过程约束检查问题