我目前正在使用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上触发事件,但它在浏览器上是什么?
我希望得到一些帮助,先谢谢。
最后我找到了答案here。
设置事件touchstart
,它可以正常工作:)