Eventos de clique não sendo acionados em PhoneGap/Backbone.js com modelo Underscore.js
-
11-12-2019 - |
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.
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(...)