我在使用 Backbone.js 应用程序时遇到了一个奇怪的问题。在我的主视图中,我想捕获视图上发生的所有输入事件并将它们路由到输入处理程序方法。我在视图中还有一些链接可以导航到应用程序的其他部分。相关(CoffeeScript)代码:
events:
'click a.quit': 'quit'
'mousedown': 'onActionStart'
'mouseup': 'onActionEnd'
'touchstart': 'onActionStart'
'touchmove': 'onActionMove'
'touchend': 'onActionEnd'
事件处理在桌面 Safari 中按预期工作。当我单击“退出”链接时,“onAction_ _ ”方法会触发,然后会调用“退出”方法。但是,在 Mobile Safari 上,不会调用“退出”方法。如果我修改触摸事件选择器以仅响应视图中的较小区域(即不与链接重叠的元素),那么它会按预期工作。(通过用户输入触发的所有方法都有 preventDefault() 调用,但这不应该阻止事件冒泡。)这是一个已知的 Mobile Safari 问题吗?