jquery - 为什么 sammy.js 从不使用 post 路由?

标签 jquery sammy.js

好吧,我刚刚开始使用 sammy.js ,我不太擅长,但我能够很快地掌握基础知识。 我正在使用的 HTML 表单

<form id="contact_form" action="#/form" method="post">
<label for="name">Name:</label><input  class="textbox" type="text" name="name" id="name" />
<label for="email">E-mail:</label><input  class="textbox" type="text" name="email" id="email" />
<label for="message">Message:</label><textarea class="textbox" name="message"  id="message"></textarea>
<button type="submit" name="submit" value="Submit" id="submit" />
<p id="message_outcome"></p>

我用来路由我的 url 的 Node.js

var app = $.sammy(function(){
    this.element_selector = '#page1';
    this.get('#/about',function(context){
        $("ul#nav li").removeClass("active"); //removes "active" class
        $('#nav_1').addClass("active"); //adds "active" class to the tab that is selected
        $.post('home/about','', function(resp){
            $('#page1').html(resp);
            $('#page_container').cycle(0); //the number of the div that will be shown on click
        });
    });

    this.post('#/form', function(context){
       this.log('Form Submission');

    });
});


$(function(){
    app.run('#/about');
});

当网址中包含 #/form 时,我会收到一个控制台日志,其中显示其运行路线 get('#/form') ..有什么想法吗?

这里有一些可能有帮助的更多信息

我除了 sammy 之外还使用 Jquery 插件

http://jquery.malsup.com/cycle/

这就是当我单击表单上的“提交”时我的 Chrome 控制台所显示的内容。 [2010 年 10 月 10 日星期日 05:29:27 GMT-0400(东部夏令时间)] runRoute get #/form/public/js/lib/sammy.js:96 [2010 年 10 月 10 日星期日 05:29:27 GMT-0400(东部夏令时间)] 404 Not Found get #/form 错误:404 Not Found get #/form

最佳答案

对于后期路由要记住的另一件事是了解 Sammy 的工作原理。当 Sammy 初始化时,它会绑定(bind)到 jQuery 选择器。

var app = $.sammy('#content', function() {
   ...
});

对于发布路由,Sammy 绑定(bind)到用于初始化应用程序的选择器内的所有表单(在我们的示例中为#content),并监听表单提交生成的单击事件,因为这些事件会向上冒泡到父级。现在,当它看到表单的提交事件时,如果表单指向某个路由,它将执行相应的路由。

需要记住的是,如果您的表单位于主选择器之外(例如在 #content 之外的 header 中),那么 sammy 将永远不会收到提交事件,并且 post 路由将永远不会执行。

关于jquery - 为什么 sammy.js 从不使用 post 路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3899335/

相关文章:

javascript - 如何使用jQuery判断客户端使用什么浏览器

javascript - 重新创建 Medium 的图像淡入淡出滚动效果

javascript - 尝试一次连续显示多个 php 文件

javascript - 无法使用 javascript 替换和正则表达式删除 "C:\fakepath\"

javascript - 在 div 内捏合/缩放但不是整个页面

javascript - 使用 Sammy.js 时如何移动到页面上的 anchor ?

javascript - 轻巧的替代Sammy.js

javascript - 使用 TypeScript 声明 Sammy js 设置

knockout.js - 使用数据绑定(bind)提交,sammy.js 和 knockout.js 一起进行奇怪的重定向

javascript - 文档级事件监听器被复制