Klickereignisse, die in PhoneGap / Backbone nicht ausgelöst werden.js mit Unterstrich.js-Vorlage
-
11-12-2019 - |
Frage
Ich habe eine Phonegap / Cordova 2.0-App mit Backbone erstellt.js, was alles in Ordnung war, bis ich versuchte, ein Formular zu erstellen.Das Formular wird angezeigt, aber die Klickereignisse lösen die Tastatur nicht aus.
Ich habe mit verschiedenen Ereignissen herumgespielt und festgestellt, dass das Hinzufügen ontouchstart="this.focus()"
brachte die Tastatur in Ordnung.Ich habe der Ansichtsfunktion einen Sammelbegriff hinzugefügt, um den Fokus zu erhöhen:
window.PageView = Backbone.View.extend({
initialize: function() {
this.template = _.template(tpl.get('page'));
},
render: function(eventName) {
$(this.el).html(this.template(this.model.toJSON()));
$('input', $(this.el)).bind('touchstart',function(event) {
$(this).focus();
});
return this;
}
});
Aber auch damit, wenn ich mich ändere bind('touchstart'...
zu 'click'
es wird nicht ausgelöst.
Ich habe ein paar andere Beiträge gefunden wie: Klickereignis wird in einer Unterstrichvorlage nicht ausgelöst
was darauf hindeutet, dass es mit dem Unterstrich zu tun hat.js Templating-Prozess, aber nichts ist sehr klar.
Ich denke, ich könnte beim Touchstart eine Timer-Funktion einrichten, um dies zu simulieren, aber es ist irgendwie mysteriös, also möchte ich wissen, was wirklich los ist.
Danke.
Lösung 2
Es stellt sich heraus, dass iScroll das Problem verursacht hat.
onBeforeScrollStart: function (e) { e.preventDefault(); },
Speziell.Ich habe gerade das kommentiert e.preventDefault();
und es hat gut funktioniert!
Andere Tipps
Versuchen Sie dies:
this.$(':input').bind(...)