オプションのギャラリーと呼ばれるビューがあります。ギャラリーがレンダリングされたとき(ギャラリーが閉じられるまで)、キーダウンイベントを聞いて操作したいと思います。
バックボーンイベントでこれを行うにはどうすればよいですか? 'keydown X':functionのすべてのバリエーションを試しましたが、どれも機能しませんでした。
私はちょうど以下をテストしました、そしてそれは完璧に働きました:
_var view = Backbone.View.extend({
// ... snip ...
events: {
'keyup :input': 'logKey'
,'keypress :input': 'logKey'
}
,logKey: function(e) {
console.log(e.type, e.keyCode);
}
});
_
戻ってコードを確認します。バックボーンのすべてのイベントは、_viewInstance.el
_要素にアタッチされたデリゲートとして定義されます。イベントのバインドを解除するには、viewInstance.remove()
を呼び出します。これにより、内部で$(viewInstance.el).remove()
が呼び出され、委任されたすべてのイベントがクリーンアップされます。
また、一部のブラウザ(Firefoxだと思います)では、一部のキー(矢印キーなど)がバブルせず、委任されたkeypress
イベントで正しく機能しないという既知の問題があることにも注意してください。特別なキーをキャッチしている場合は、keyup
とkeydown
を使用したほうがよいでしょう。