Backbone.js单击事件不适用于触摸

fan*_*ncy 9 javascript coffeescript backbone.js

events: 
    'click' : 'select'
Run Code Online (Sandbox Code Playgroud)

在Mobile Safari上使用此事件时,触摸时会触发两次事件.这是一个已知的bug还是我自己造成的?

我已经把它改成了

events: 
    'touchstart' : 'select'
Run Code Online (Sandbox Code Playgroud)

它工作得很好但意味着它不再适用于普通的浏览器.

谢谢你的任何信息.

dir*_*ira 16

试试这段代码:

TouchView = Backbone.View.extend({
  events: function() {
    return MOBILE ? 
       {
         "touchstart": 'select'
       } : 
       {
         "mousedown": 'select'
       }
  }
}
Run Code Online (Sandbox Code Playgroud)

看到它在行动:http://jsfiddle.net/dira/Ke2px/2/


Kai*_*Kai 1

我不熟悉 Backbone,但也许尝试有条件地设置它?

if ('ontouchstart' in document.documentElement) {
  // 'touchstart': 'select'
} else {
  // 'click': 'select'
}
Run Code Online (Sandbox Code Playgroud)