2011-10-31 77 views
2

我有HTML內容,如:委派或按鈕事件骨幹只有

<button class="submit">Save</button> 

和查看,如:

var MyView = Backbone.View.extend({ 
events: { 
    'click .submit': 'save' 
}, 

save: function() {} 
} 

,當我點擊這個按鈕,我看到骨幹多恩斯處理這個事件,而是標準的瀏覽器動作(至少在Chrome上)。 <a>標籤相同。我的意思是Backbone沒有綁定到這個標籤。

目前我已經使用<span>按鈕,它工作正常,但我想知道爲什麼我不能使用按鈕的標準標籤?我可以如何刪除標準瀏覽器事件,並使用主幹爲<a><button>

回答

5

事件只是'聽衆' - 他們被告知發生了事件。如果你想阻止事件你必須做

save: function(event) { 
    event.preventDefault(); 
    event.stopPropagation(); 
} 

要檢查骨幹處理該事件,請檢查當你點擊你的聽衆(save)被調用。 Backbone不會停止默認行爲,您必須在事件處理函數中自行完成。

另一個建議:把你的按鈕放在form裏面,然後爲submit form添加一個事件監聽器。如果用戶使用鍵盤提交表單(單擊事件僅適用於鼠標),這也可以工作。

+0

我有'console.log('save')'在我的保存方法 - 它從來沒有要求