2013-02-25 26 views
2

如何在事件中將preventDefault()添加到<button>?我在下面有沒有工作..謝謝如何添加preventDefault()backbone.js

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); 
     }); 

    } 
}); 

回答

5

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); 
    }); 
} 
+0

謝謝,這是什麼意思「事件&&」 – 2013-02-25 09:16:37

+0

它在事件對象上調用.preventDefault()之前檢查事件的存在。在這種情況下,它不是必需的,因爲所有綁定處理程序在被調用時都會接收該對象。 – 2013-02-25 09:21:24

1

接收事件對象作爲參數

render: function(evt){ 

    evt.preventDefault(); 

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

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

} 
1

加入

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

如果可以重新激活行動將它添加到骨幹js視圖的渲染函數中,然後可以根據需要使用event.preventDefault()。

相關問題