keyup-Ereignis nicht auslösen - backbone
Ich hab ein problem mit dem JQuery Ereignisse in meinem Rückgrat.Marionette Ansichten. Ich habe einige auf-und Tastatur-Ereignisse. Aber einige von Ihnen nicht arbeiten. Zum Beispiel möchte ich, dass die fetch-Funktion wird jedesmal aufgerufen, wenn das keyup-Ereignis ausgelöst wird.
So, hier ist der code:
return Backbone.Marionette.ItemView.extend({
tagName: 'div',
template: Template,
events:{
'click .yes': 'yes',
'click .no': 'no',
'keyup #citySearch': 'fetch'
},
yes : function() {
this.close();
},
no : function() {
this.close();
},
initialize: function(){
this.collection = new AreaCollection();
this.collection.on('sync', this.onShow, this);
this.sourceArr = [];
},
onShow: function() {
var that = this;
$('#citySearch').typeahead({
source: that.sourceArr
});
},
fetch: function(ev) {
var that = this;
that.collection.fetch({
data : {
query : $(ev.currentTarget).val(),
type : 'cities'
},
success: function(response) {
for (var i = 0; i < response.length; i++) {
that.sourceArr.push(response.models[i].get('name'));
}
}
});
}
});
Aber das keyup-Ereignis wird nie ausgelöst. Ich habe auch versucht es mit der "change"-Ereignis, welches auch nicht funktioniert. Wenn ich mit "keydown" oder "keypress", anstatt dann alles in Ordnung ist und die fetch-Funktion richtig aufgerufen worden ist.
Ich habe auch versucht, binden Sie das Ereignis, um das input-Feld manuell in der initialize-Funktion mit
$('input#citySearch').bind('keyup',function() {
console.log('keyup');
});
Dies ist aber auch nicht funktioniert. Es funktioniert nur, wenn ich binden Sie das Ereignis, um das Eingabefeld in meinem Unterstrich-Vorlage-Datei. Aber das konnte nicht die Lösung sein.
Hat jemand eine Idee was das problem sein könnte?
typeahead()
ist greifen keyup
und zur Verhinderung von Vermehrung?Nein, dass ist auch nicht funktioniert, ich entfernte das Initialisierung der typeahead-Bereich und versucht, das keyup-event wieder
InformationsquelleAutor crebuh | 2013-06-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denken kann nur einen Grund für diese. Und das ist:
input#citySearch
ist nicht Teil der itemView. Das bedeutet, Sie sind unverbindlich Ihr fetch-Funktionkeyup
Ereignis innerhalb des container-element der view.Wenn Sie möchten, binden an etwas, das außerhalb Ihrer Sicht, Sie können ein Ereignis auslösen, auf die Sicht, in der sich das element befindet.
InformationsquelleAutor Devesh Kumar