Javascript 如何添加preventDefault()backbone.js

Javascript 如何添加preventDefault()backbone.js,javascript,backbone.js,Javascript,Backbone.js,如何在事件中将preventDefault()添加到?我下面的东西不起作用了。。谢谢 var View = Backbone.View.extend({ initialize: function () { //console.log('initializing ' + this.options.blankOption); this.template = $('#list-template').children(); }, el: '#co

如何在事件中将preventDefault()添加到
?我下面的东西不起作用了。。谢谢

var View = Backbone.View.extend({

    initialize: function () {
        //console.log('initializing ' + this.options.blankOption);
        this.template = $('#list-template').children();
    },
    el: '#container',
    events: {
        'click button' : 'render'
    },
    render: function(){

        this.events.preventDefault(); // not working ????

        var data = this.model.get('data');

        $.each(data,function (i,v) {
            console.log(data.text + " " + data.href);
        });

    }
});

this.events不是事件对象。所以它不起作用

试试这个:

render: function(event){
    event && event.preventDefault();

    var data = this.model.get('data');

    $.each(data,function (i,v) {
        console.log(data.text + " " + data.href);
    });
}

接收事件对象作为参数

render: function(evt){

    evt.preventDefault();

    var data = this.model.get('data');

    $.each(data,function (i,v) {
        console.log(data.text + " " + data.href);
    });

}

您可以通过添加来重新激活操作

this.delegateEvents();  // Re-activates the events for all the buttons

如果将其添加到主干js视图的呈现函数中,则可以根据需要使用event.preventDefault()。

它会在调用事件对象的.preventDefault()之前检查事件是否存在。在这种情况下,它不是必需的,因为所有绑定处理程序在被调用时都会接收对象。