Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Sammy.JS在app.run上没有自动运行路线?_Javascript_Sammy.js - Fatal编程技术网

Javascript Sammy.JS在app.run上没有自动运行路线?

Javascript Sammy.JS在app.run上没有自动运行路线?,javascript,sammy.js,Javascript,Sammy.js,有没有办法使Sammy.JS在调用app.run()时不会自动调用runRoute “我的代码”当前在第一次加载时初始化Sammy,但在用户实际单击链接之前,不希望它实际调用任何Sammy路由。您可以尝试将非操作路由传递到run方法。在这种情况下,它可能会忽略散列中的任何路由 否则,您可以在文档根上设置一个侦听器来侦听文档中的单击,然后运行应用程序。但这个解决方案似乎“不够干净” (假设jQuery) 这个问题很老了,但我使用了下面的解决方案,我发现它更干净一些 页面正常加载,Sammy在使用.

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


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

您可以尝试将非操作路由传递到
run
方法。在这种情况下,它可能会忽略散列中的任何路由

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

(假设jQuery)


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

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

$(function () {
    var app = Sammy();

    $("a").live(function () {
       if (!app.isRunning()) {
          app.run();
       }
    });
});
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; }