Hash 当哈希值没有明显改变时,我如何强制铁路由器做出反应?
使用iron router时,使用参考下一节id的定位按钮滚动到哈希,例如:Hash 当哈希值没有明显改变时,我如何强制铁路由器做出反应?,hash,meteor,iron-router,Hash,Meteor,Iron Router,使用iron router时,使用参考下一节id的定位按钮滚动到哈希,例如: <a class="button" href="{{pathFor 'home' hash='about'}}"> 这允许第二次点击,但不能再点击了,这让我感到困惑。将window.location.hash设置为空格而不是空字符串: Router._scrollToHash = function(hash) { var section = $(hash); if (section.length
<a class="button" href="{{pathFor 'home' hash='about'}}">
这允许第二次点击,但不能再点击了,这让我感到困惑。将window.location.hash设置为空格而不是空字符串:
Router._scrollToHash = function(hash) {
var section = $(hash);
if (section.length) {
var sectionTop = section.offset().top;
$("html, body").animate({
scrollTop: sectionTop
}, "slow");
}
window.location.hash = ' ';
};
可能将其设置为不存在的散列也会
除了有一个菜单链接可以从第二页激活的情况外,还可以将您带到您需要此软件包的哈希:
meteor add okgrow:iron-router-autoscroll
结合使用,它涵盖了我想到的每一个案例。这不是更像是一个浏览器问题而不是一个铁路由器问题吗?iron router只是根据
pathFor
设置href,您的浏览器如何解释点击这样的链接取决于浏览器。您是否建议浏览器在我们滚动出散列表示的部分并更改散列值时进行检测?我不认为这是预期的行为-我认为问题在于scrollToHash函数仅在hash发生变化时调用,或者更确切地说,当散列值与当前路由器位置的散列值发生变化时——因此,我需要在窗口中更改散列值,或者重置当前路由器位置,以便产生差异,从而启动滚动功能。将哈希值设置为null可以工作一次,但只能工作一次。
meteor add okgrow:iron-router-autoscroll