Cliquez sur les événements à ne pas être licencié dans PhoneGap / Backbone.js avec Underscore.js modèle

StackOverflow https://stackoverflow.com//questions/12652161

Question

J'ai été faire un Phonegap / Cordova 2.0 app avec backbone.js qui a été bien jusqu'à ce que j'ai essayé de construire un formulaire.Le formulaire est affiché, mais les événements click ne pas déclencher le clavier.

J'ai joué un peu avec les différents événements et trouvé que l'ajout de ontouchstart="this.focus()" mis le clavier bien.J'ai ajouté un fourre-tout dans le point de vue de la fonction pour mettre l'accent:

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;
    }

});

Mais même avec cela, si je change d' bind('touchstart'... pour 'click' il n'est pas déclenché.

J'ai trouvé un couple d'autres postes comme: cliquez sur l'événement n'est pas déclenché dans un trait de soulignement modèle

qui suggère qu'il est à faire avec la underscore.js processus de modélisation, mais rien n'est très clair.

Je suppose que je pourrais faire une fonction de minuterie sur les évènements touchstart pour simuler cela, mais c'est kindof mystérieux donc, je veux savoir ce qu'il se passe vraiment.

Merci.

Était-ce utile?

La solution 2

Il s'avère qu'il était iScroll à l'origine du problème.

            onBeforeScrollStart: function (e) { e.preventDefault(); },

En particulier.J'ai juste commenté le e.preventDefault(); et il a travaillé un régal!

Autres conseils

Essayez ceci:

this.$(':input').bind(...)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top