所以我正在使用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
上。当移动被释放时,如何让它返回到正常的锚状态?
最接近hacky的答案将被接受,我确信有很多方法可以做到这一点。
到目前为止我发现的最佳解决方案是使用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)
但是很多代码都是如此微不足道。
更新#1是唯一可行的,并且很多代码都很好,我把它变成了一个名为$.reset()
的可重用函数。还有一个问题:
当您点击链接时,光标从pointer
光标变为default
光标,感觉很不方便。
有没有办法让这个工作?我已经做了很长时间的Web开发,看起来这是WebKit最近的一个错误,它已经进入Safari 7和Chrome 23左右。