Pergunta

Estou criando um aplicativo Phonegap/Cordova 2.0 com backbone.js, que está tudo bem até tentar criar um formulário.O formulário é exibido, mas os eventos de clique não acionam o teclado.

Eu brinquei com diferentes eventos e descobri que adicionar ontouchstart="this.focus()" trouxe o teclado bem.Eu adicionei um catchall na função de visualização para trazer o foco:

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

});

Mas mesmo com isso se eu mudar bind('touchstart'... para 'click' ele não é acionado.

Encontrei alguns outros posts como: O evento click não é acionado em um modelo de sublinhado

o que sugere que tem a ver com o processo de modelagem underscore.js, mas nada está muito claro.

Acho que poderia fazer uma função de cronômetro no touchstart para simular isso, mas é meio misterioso, então quero saber o que realmente está acontecendo.

Obrigado.

Foi útil?

Solução 2

Acontece que foi o iScroll que causou o problema.

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

Especificamente.Acabei de comentar o e.preventDefault(); e funcionou muito bem!

Outras dicas

Experimente isto:

this.$(':input').bind(...)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top