Mümkün mü? Böyle bir şey:backbone.js kullanarak <body> olayına nasıl bağlanır?
...
events {
'keydown body' : 'doSmth'
}
...
Mümkün mü? Böyle bir şey:backbone.js kullanarak <body> olayına nasıl bağlanır?
...
events {
'keydown body' : 'doSmth'
}
...
Bu mümkün değildir: Bu durumda genel uygulama çapında Görünüm keydown girişleri kabul yapabiliriz torunları. Görünüm öğesinin dışındaki öğelerin etkinliklerine abone olmaz.
Bu nedenle, görünümünüzün öğesi tablodursa, keydown olayı tablonun üzerine getirildiğinde doSomething() işlevi çağrılır, ancak keydown olayının sayfada başka bir öğeye atılması durumunda çağrılmaz.
Genellikle 'html' Bu soruyu bakın çalışmalıdır üzerinde keydown konuşan: Ancak
, tarafından tetiklenebilir bir Omurga görünümünde etkinlik için genellikle daha iyidir View'in elindeki elemanlar. Omurga olaylar görünümün elemanı (view.el mülkiyet) ve eleman en olaylara abone olmak karma kullandığı için
events: {
'keydown': 'doSomething'
}
Basitçe, görünümün başlangıç yöntemi içinde jQuery gibi bir çerçeve kullanarak bağlayın.
var View = Backbone.View.extend({
initialize: function() {
_.bindAll(this, "keyPress");
$(document).bind('keydown', this.keyPress);
},
keyPress: function(e) {
console.log(e.keyCode);
alert(e.keyCode);
return false;
}
});
Unutmayı unutmayın, önemli; Eğer görünümü hala dom (belgede) ise `el = $ ("vücudu")` sahiptir görünümü hakkında $(document).find(this.$el).size()
if($(document).find($(this.options.container)).size() <= 0) {
alert("view not in document");
$(document).unbind('keydown', this.keyPress);
}else {
alert("view is here");
}
Nasıl kullanarak görmek tuşla kontrol edebilirim? Bunu en çok sevdiğimden değil - sadece eğlence/meraktan dolayı. –
@PLJ, el $ ("body") ise, o zaman çalışmalıdır. Vücudunu eleman olarak sahip olan pek çok Omurganın görüşlerini bilmiyorum. – Paul