PreventDefault事件在Backbone视图中不起作用

时间:2015-10-18 12:59:55

标签: javascript jquery django backbone.js

我从轻量级django学习Backbone.js,我无法通过触发默认事件获得以下功能。

以下是我的按钮

的html
var Demo = React.createClass({
            getInitialState:function(){
                return {show:false};
            },
            onClick:function(){
                this.setState({show:true});
            },
            render: function(){
                return (
                    <div>
                        <div className="demo" onClick={this.onClick}>
                            Demo
                            {this.state.show?<Demosub />:null}
                        </div>
                        <div className="demo" onClick={this.onClick}>
                            Demo
                            {this.state.show?<Demosub />:null}
                        </div>
                        <div className="demo" onClick={this.onClick}>
                            Demo
                            {this.state.show?<Demosub />:null}
                        </div>
                    </div>
                );
            }
        });

        var Demosub = React.createClass({
            render: function(){
                return (
                    <div>Demo sub</div>
                );
            }
        });

这是我的骨干观点

<script type="text/html" id="header-template">
    <span class="title">Scrum Board Example</span>
    <% if (authenticated ) { %>
        <nav>
            <a href="/" class="button">Your Sprints</a>
            <a href="#" class="logout">Logout</a>
        </nav>
    <% } %>
</script>

每当我点击一个href按钮时 - 它似乎都没有在我的视图模型中触发注销功能。

我在其他地方出错了吗?

感谢,. KJ

1 个答案:

答案 0 :(得分:0)

如果使用preventDefault(),则没有理由使用href。

<a class="button">Your Sprints</a>

但是如果你使用window.location =&#39; /&#39;为什么使用preventDefault。

对你的删除功能使用回调也很酷。

var callback = window.location = '/';
app.session.delete(callback);

在app.session.delete:

app.session.delete = function(callback) {
    // do stuff
   if(callback) {
       callback();
   }
}