Iphone 使用下划线.js模板单击PhoneGap/Backbone.js中未激发的事件

Iphone 使用下划线.js模板单击PhoneGap/Backbone.js中未激发的事件,iphone,cordova,backbone.js,underscore.js,cordova-2.0.0,Iphone,Cordova,Backbone.js,Underscore.js,Cordova 2.0.0,我一直在用backbone.js制作一个Phonegap/Cordova 2.0应用程序,在我尝试构建一个表单之前,这个应用程序一直都很好。将显示表单,但单击事件不会触发键盘 我处理了不同的事件,发现添加ontouchstart=“this.focus()”可以很好地使用键盘。我在view函数中添加了一个catchall,以获得焦点: window.PageView = Backbone.View.extend({ initialize: function() { th

我一直在用backbone.js制作一个Phonegap/Cordova 2.0应用程序,在我尝试构建一个表单之前,这个应用程序一直都很好。将显示表单,但单击事件不会触发键盘

我处理了不同的事件,发现添加
ontouchstart=“this.focus()”
可以很好地使用键盘。我在view函数中添加了一个catchall,以获得焦点:

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

});
但即使这样,如果我将
bind('touchstart')…
更改为
'click'
,它也不会被触发

我还发现了一些其他帖子,如:

这表明它与underline.js模板化过程有关,但没有什么是非常清楚的

我想我可以在touchstart上制作一个定时器函数来模拟这个,但它有点神秘,所以我想知道到底发生了什么

谢谢。

试试这个:

this.$(':input').bind(...)

结果是问题的根源

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

具体地说,我刚刚注释掉了
e.preventDefault();
,效果不错!

绑定事件不是问题,因为我可以成功绑定其他事件。它只是不会触发单击事件。