Pregunta

He estado creando una aplicación Phonegap/Cordova 2.0 con backbone.js y todo ha ido bien hasta que intenté crear un formulario.Se muestra el formulario pero los eventos de clic no activan el teclado.

Jugué con diferentes eventos y descubrí que agregar ontouchstart="this.focus()" Subió bien el teclado.Agregué un comodín en la función de vista para enfocar:

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

});

Pero incluso con esto si cambio bind('touchstart'... a 'click' no se activa.

He encontrado un par de otras publicaciones como: El evento de clic no se activa en una plantilla de guión bajo.

lo que sugiere que tiene que ver con el proceso de creación de plantillas de subrayado.js, pero nada está muy claro.

Supongo que podría hacer que un temporizador funcione en el inicio táctil para simular esto, pero es un poco misterioso, así que quiero saber qué está pasando realmente.

Gracias.

¿Fue útil?

Solución 2

Resulta que fue iScroll el que causó el problema.

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

Específicamente.Acabo de comentar el e.preventDefault(); ¡Y funcionó de maravilla!

Otros consejos

Prueba esto:

this.$(':input').bind(...)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top