1

我目前正在使用 Backbone.js、underscore.js 和 jQuery Mobile 开发应用程序。这是一个有几个问题的“测验”,当用户点击答案时,它会进入下一个问题。

它在浏览器上运行良好,但我想使用 Phonegap 开发一个 IOS 应用程序,并且(经过一些小改动后)一切似乎都正常,但是当我点击某个答案时,事件(既不点击也不点击)不火。我用“提交”按钮尝试了它,它起作用了,所以那里有些奇怪:(

相关代码:

var quizView = Backbone.View.extend({
    collection: new quizCollection(),
    render: function() {
         (...)
    },
    events: {
        'click .resp': 'saveStatus', // original
        'tap .resp': 'saveStatus',  // and maybe...?
        'touch .resp': 'saveStatus'// what if...?
    },
    saveStatus: function(event) {
        var el = $(event.currentTarget).siblings("input");
        var score = (el.val() == questions.selected.correcta) ? (1) : (0);
        datosPartida.preguntasResp++;
        datosPartida.score += score;
        this.collection.showQuestion();
    }
});

其中“ .resp”是单选输入标签中的类。

模板的代码是:

<div data-role="header">
    <h1>Pregunta</h1>
</div>

<div data-role="content">
    <div>
        <%
            var id = preguntas.id;
            var corr = preguntas.correcta;
            var it = 0;
        %>

        <h3><%= preguntas.pregunta %></h3>
        <% _.each(preguntas.respuestas, function(respuesta) { %>
            <input id="respuesta_<%= it %>" name="respuesta_<%= id %>" type="radio" value="<%= respuesta.id %>">
            <label data-role="button" class="resp" for="respuesta_<%= it %>">
                <%= respuesta.respuesta %>
            </label>
                <% it++; %>
        <% }); %>
           <!-- <button data-role="button" class="sigpreg">Siguiente</button> -->
    </div>
</div>

为什么我的点击/单击没有在 IOS 上触发事件,但在浏览器上却触发了?

我希望有所帮助,在此先感谢。


最后我在这里找到了答案。

设置事件touchstart,它工作正常:)

4

0 回答 0