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.

War es hilfreich?

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(...)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top