0

私はbackbone.jsを使用してPhonegap/Cordova 2.0アプリを作成してきましたが、フォームでビルドしようとするまではすべて問題ありませんでした。フォームは表示されますが、クリックイベントはキーボードをトリガーしません。

さまざまなイベントを試してみたところ、追加ontouchstart="this.focus()"するとキーボードが正常に表示されることがわかりました。フォーカスをもたらすために、ビュー関数にキャッチオールを追加しました。

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'てもトリガーされません。

私は他のいくつかの投稿を見つけました:クリックイベントはアンダースコアテンプレートでは発生しません

これは、underscore.jsテンプレートプロセスに関係していることを示唆していますが、明確なことは何もありません。

タッチスタートでタイマー機能を作ってこれをシミュレートできると思いますが、ちょっと不思議なので、実際に何が起こっているのか知りたいです。

ありがとう。

4

2 に答える 2

0

問題の原因はiScrollであることが判明しました。

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

具体的には。私はちょうどコメントアウトしました、e.preventDefault();そしてそれは御馳走を働かせました!

于 2012-10-01T12:06:54.617 に答える
0

これを試して:

this.$(':input').bind(...)
于 2012-09-29T14:34:39.510 に答える