我有一个ajax脚本,它使用在状态发生变化时调用函数的history.js:
History.Adapter.bind(window,'statechange',function() {
var State = History.getState();
if (State.url.split('/').pop() === "home") {
home();
}
});
当浏览器中的历史记录更改为home时,将调用home()函数,这是完美的。
然后捕捉我的链接:
$('a').click(function(evt) {
evt.preventDefault();
History.pushState("", $(this).text(), $(this).attr('href'));
});
当我从另一个功能导航到家时,家庭正常加载,但是当我再次点击主页链接时,当我希望再次加载时没有任何反应。我理解,因为状态没有变化,所以什么都不应该发生。 但是,如何通过单击其链接来触发该home()函数的加载,而不会激发更改状态,从而重新加载?
(提示:我的js级别接近0:)
答案 0 :(得分:0)
我没有找到绑定到'无变化'状态的方法所以我所做的是在捕获点击时我检查链接的url是否与当前url相同。这很难看,但现在它有效。
if ($(this).attr('href') === History.getState().url.split('/').pop()) {
...
}