Ich habe ein Problem mit den JQuery-Ereignissen in einer meiner Backbone.Marionette Ansichten. Ich habe einige Klick- und Tastaturereignisse definiert. Aber einige von ihnen arbeiten nicht. Zum Beispiel möchte ich, dass die Fetch-Funktion jedes Mal aufgerufen wird, wenn das Keyup-Ereignis ausgelöst wird.Keyup-Ereignis wird nicht ausgelöst - Backbone
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-Event wird nie ausgelöst. Ich habe es auch mit dem "Change" -Event versucht, was auch nicht funktioniert. Wenn ich stattdessen "keydown" oder "keypress" verwende, ist alles in Ordnung und die Fetch-Funktion wird korrekt aufgerufen.
Ich habe auch versucht mit
$('input#citySearch').bind('keyup',function() {
console.log('keyup');
});
Aber das ist auch nicht funktioniert das Ereignis zu diesem Eingabefeld manuell in der initialize-Funktion zu binden. Es funktioniert nur, wenn ich das Ereignis an das Eingabefeld innerhalb meiner Unterstrich-Vorlagendatei binde. Aber das könnte nicht die Lösung sein.
Hat jemand eine Idee, was das Problem sein könnte?
Ist es möglich, dass der Handler, der über 'typeahead()' an das Feld angehängt ist, 'keyup' greift und verhindert, dass es sich ausbreitet? – ebohlman
nein, das funktioniert auch nicht, ich habe die Initialisierung des typeahead-Feldes entfernt und das keyup-event erneut versucht – crebuh