Sammy.js重新运行相同的路线

时间:2014-01-30 23:37:05

标签: javascript sammy.js

我有一个页面可以在信息之间进行一些垂直滚动。我正在使用sammy来绕过它。但是,如果有人在单击链接后手动向上滚动页面以进入页面的某个部分,则他们再次单击相同的链接,操作不会运行,因为哈希是相同的。

以下是该问题的简化示例......

http://jsfiddle.net/Qya4j/1/

的Javascript

$.sammy('body', function() {
  this.before(/.*/, function () {
  console.log('before');
});
  this.get('#/add/:number', function(context) {
    $("#content").append("badger");
  });
}).run();

HTML

<a href="#/add/1">Add One</a>
<a href="#/add/2">Add Two</a>
<br>
<div id="content">Badger hole.</div>

有没有办法让路由再次使用相同的哈希运行?或者还有其他方法可以解决这种情况吗?我可以看到为什么这对某些应用程序来说是一个坏主意,但是当涉及基于滚动的导航时,这很有意义。

我尝试过的几件事

在我的路线中使用window.location.hash = window.location.hash + "?something"只更改网址,因此它不再完全匹配。这个工作,除了它螺旋形成无限循环并崩溃浏览器。手动为每个链接附加一个不同的参数是一个选项,但由于显而易见的原因,它是愚蠢的。

我尝试使用具有类似效果的after回调。

0 个答案:

没有答案
相关问题