【问题标题】:anchor tag href not linking with div id锚标记 href 未与 div id 链接
【发布时间】:2015-01-20 21:41:45
【问题描述】:

我正在尝试将锚点链接到同一页面中的 div。我做了以下事情:

<a class="chev" href="#yes"> 
       <span class="glyphicon glyphicon-chevron-down"></span>
</a>
...
..
..

<div id="yes"> some content </div>

但是,当点击链接时,页面并没有将我带到 div。这是我从控制台收到的错误消息:

未捕获的错误:[$location:ihshprfx] 无效的 url “hostname/#yes”,缺少哈希前缀“#!”。

我确实查看了其他一些解决方案,但它们都不起作用。

有什么想法吗?

【问题讨论】:

  • 你有一些 JavaScript 干扰,但你没有提供足够的代码来说明什么。
  • 为什么这个标签是mean
  • 你说的什么JS干扰。该视图没有任何嵌入的 JS。然而,它被包裹在一个角度控制器中。
  • JavaScript 拦截链接并尝试对 URL 执行某些操作的类型。将它包装在一个角度控制器中听起来像是对 JavaScript 的主要干扰。
  • 错误是说缺少哈希前缀!#,不清楚。

标签: javascript jquery html css mean


【解决方案1】:

我认为问题在于,由于您是在 Angular 控制器中执行此操作,因此 Angular 认为 #yes 锚点指的是特定路由,而不是只是页面中的普通旧锚点。

如果我没记错的话,在链接上指定 target="_self" 会告诉 Angular 不理会它,它的行为就像任何普通链接一样。

试试这个:

<a class="chev" href="#yes" target="_self"> 
       <span class="glyphicon glyphicon-chevron-down"></span>
</a>
...
..
..

<div id="yes"> some content </div>

更多信息在这里:http://eli.eliandlyndi.com/2013/08/26/navigate-urls-angular-application-target_self/

【讨论】:

  • 嗨@HaukurHaf,我遇到了同样的问题,但即使包含target="_self",我的问题仍然存在。
【解决方案2】:

在我看来你是在倒退。我很确定你只能跳转到其他锚标签。尝试将 div 更改为锚点,或在其上方放置一个锚点。

<a class="chev" href="#yes"> 
   <span class="glyphicon glyphicon-chevron-down"></span>
</a>
...
..
..
<a id='yes'></a>
<div> some content </div>

【讨论】:

  • "我很确定你只能跳转到其他锚标签。" — 在 HTML 3.2 中确实如此。自 1997 年以来,您可以跳转到具有 id 的任何元素。
  • “我很确定你只能跳转到其他锚标签”——这是错误的,带有id 的 +any_ 元素是有效目标。跨度>
  • 可能有一些 JS 干扰了它们的跳转
猜你喜欢
  • 2014-08-01
  • 2016-03-17
  • 2017-09-22
  • 2022-08-16
  • 2011-04-08
  • 2015-09-23
  • 2020-10-13
  • 1970-01-01
  • 2014-02-06
相关资源
最近更新 更多