我目前正在使用 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
,它工作正常:)