2011-10-31 4 views
2

は、私は、HTMLコンテンツのような持っている私は、このボタンをクリックしていた場合委任aまたはボタンのイベントのみ

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

save: function() {} 
} 

を、私はバックボーンがdoensことがわかりこのイベントを処理するのではなく、標準のブラウザアクションが(少なくともChromeでは)行われます。 <a>タグのと同じ。私はバックボーンがこのタグに縛られていないことを意味します。

現在、私はボタンの<span>を使用してきた、それが正常に動作しますが、私はボタンの標準タグを使用することはできませんなぜ私は思ったんだけど?標準のブラウザイベントを削除してバックボーンを使用する方法<a>または<button>

答えて

5

イベントは「リスナー」に過ぎず、イベントが発生したことが通知されます。あなたがイベントを停止したい場合は、そのバックボーンがイベントを処理する確認するには

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

を行う必要があり、あなたがクリックしたときに、あなたのリスナー( save)が呼び出されることを確認してください。バックボーンはデフォルトの動作を停止しないので、イベント処理機能で自分で行う必要があります。

他のアドバイス:formの中にボタンを入れ、submit formのイベントリスナーを追加します。これは、ユーザーがキーボードを使用してフォームを送信した場合(クリックイベントがマウスだけのためである)も動作します。

関連する問題