在我从事的项目中,我最近从开发后端(即非网络)服务器转向与网络相关的事情。在 HTML 代码中,我到处都发现了以下内容:
<a href='#'>some link</a>
然后一些 JS 附加到 click
<a>
的事件元素。
这个唯一的哈希值有什么特殊含义吗?我怎么理解 href='#some_id'
告诉浏览器滚动到 ID = some_id
的元素.但是href='#'
不是这样的,对吧?
如果一切都是为了创建一段可点击的文本,为什么不简单地使用 <span>
呢? ?
最佳答案
没错。你在这里看到的是某种糟糕的设计(尽管使用 href="#"
很常见)。
如果不阻止默认操作,它实际上会跳转到页面顶部。
会更好
- 使用
<button>
并相应地设置样式(甚至可能仅通过 JavaScript 插入) - 或者让链接指向一些真实的资源(在服务器端触发一些 Action )并附加 JavaScript 事件处理程序以在客户端执行此(或类似) Action 并防止跟随链接(关键字:unobtrusive JavaScript ).
这还取决于网站是否打算在禁用 JavaScript 的情况下运行。如果是,那么这样的链接(也是一个按钮)将不起作用。
但无论如何,从语义的 Angular 来看,仅使用链接来获得“可点击”的内容是错误的。
关于javascript - anchor href 中的唯一哈希值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6572522/