首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在app.run上没有自动runRoute的Sammy.JS?

在app.run上没有自动runRoute的Sammy.JS?
EN

Stack Overflow用户
提问于 2011-04-26 01:19:22
回答 2查看 1.7K关注 0票数 1

有没有办法让Sammy.JS在你调用app.run()时不会自动调用runRoute?

我的代码当前在第一次加载时初始化Sammy,但不希望它在用户实际单击链接之前实际调用任何sammy路由。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-26 02:52:23

您可以尝试向run方法传入一个不可操作的路由。在这种情况下,它可能会忽略散列中的任何路由。

否则,您可以在文档根目录上设置一个侦听器来侦听文档中的单击,然后运行应用程序。但是这个解决方案似乎“不那么干净”。

(假设为jQuery)

代码语言:javascript
运行
复制
$(function () {
    var app = Sammy();

    $("a").live(function () {
       if (!app.isRunning()) {
          app.run();
       }
    });
});
票数 2
EN

Stack Overflow用户

发布于 2014-11-08 03:24:40

这个问题是旧的,但我使用了下面的解决方案,我发现它更干净一些。

页面正常加载,并且在使用.run()时,Sammy不会调用当前路由。

http://sammyjs.org/docs/api/0.7.4/Sammy.Application..before

代码语言:javascript
运行
复制
var appIsRunning = false;

var app = Sammy(function() {

   this.before('.*', function() {

        if (this.path == document.location.pathname && appIsRunning == false) {
            return false;
        }
   });

   // The routes...
   ...

}

// start the application
app.run();
if (app.isRunning()) { appIsRunning = true; }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5780986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档