2

所以我正在使用 HTML5 历史 API 在我的 .js 应用程序中从视图转换到视图。

我有一个$('a').click执行e.preventDefault()后跟路由转换的函数:

$("a").click(function (event) {
  if (this.host === window.location.host && this.getAttribute('data-bypass') === null) {
    event.preventDefault()
    indexRouter.navigate(this.pathname, true)
  }
})

这工作得很好,除了在 WebKit 浏览器中,锚的状态卡在:active. 释放移动时如何让它恢复到正常的锚状态?

最少的答案将被接受,我敢肯定有很多方法可以做到这一点。

更新#1:

到目前为止,我发现的最佳解决方案是使用bonzo分离和重新附加元素:

var previous = $(this).previous()
  , next = $(this).next()
  , parent = $(this).parent()
  , detached = $(this).detach()

if (previous.length) previous.after(detached)
else if (next.length) next.before(detached)
else if (parent.length) parent.append(detached)
else $('body').append(detached)

但对于如此微不足道的事情来说,这是很多代码。

更新#2:

更新 #1 似乎是唯一可行的,而且很多代码都很好,我把它变成了一个可重用的函数,名为$.reset(). 一个问题仍然存在:

当您单击链接时,您的光标会从pointer光标变为default光标,这感觉很尴尬。

有没有办法让它工作?我从事 Web 开发已经有很长一段时间了,这似乎是 WebKit 中最近出现的一个错误,它已经进入了 Safari 7 和 Chrome 23 左右。

4

0 回答 0