我想确定 sammyJS 路由是否是第一次执行(如浏览器刷新)或者是否在页面初始加载后访问该路由。
我的用例是,在某些情况下,当执行路由时,新内容不可见,因为用户已向下滚动页面。我想在用户已经加载页面然后单击触发路由的链接时执行 $.scrollTo ,但是如果用户直接在地址栏中访问路由,则不会执行scrollTo 。
最佳答案
如果我明白你的想法,你只需要一个最初设置为 false 的标志,然后在路由回调中切换为 true 。然后,如果标志为 false,则调用滚动方法。标志范围必须大于 Sammy 应用程序对象范围,即您应该在调用 Sammy 初始化函数之前定义标志。每次浏览器重新加载页面时,该标志都会再次为 false(请记住,JavaScript 引擎会在每次 HTML 页面刷新/重新加载时重新启动)。
如果您需要将此逻辑应用于任何路线,您可以使用 before
、after
和 around
事件之一。查看the Sammy API docs了解详情。
关于javascript - SammyJS,判断是否是第一个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14126033/