【发布时间】:2013-05-05 17:14:52
【问题描述】:
我正在尝试为由 Backbone.js 和 Trigger.io 提供支持的移动应用程序构建编辑视图。用户进入笔记视图并通过点击右上角的“编辑”进行更改。当点击“编辑”按钮时,我们关注包含内容的文本区域,“编辑”按钮消失并出现“保存”按钮。然而,只要点击“编辑”,就会触发 mouseUp 事件,这会导致文本区域失去焦点。
如果编辑按钮被隐藏并且没有任何东西替代它,则不会触发 mouseUp 事件。如果编辑按钮 A) 保留或 B) 被隐藏并且保存按钮替换它,则 mouseUp 会触发。
我发现修复它的唯一方法是在隐藏“编辑”按钮和显示“保存”按钮之间设置 200 毫秒以上的超时时间。
在单击事件之后触发 mouseup 事件和/或让它们针对单独的元素是否存在某些问题?我会发布代码,但它到处都是,不会提供太多上下文。如果你真的需要代码,我可以分部分发布。
【问题讨论】:
-
你可以尝试在 mouseUp 事件上做 event.preventDefault() 吗?如果这没有帮助,如果您可以在 jsfiddle 或类似的最小示例中重现它,它将使调试更加容易。
-
感谢您的回复,帕特里克。我尝试了 preventDefault 以及 stopPropagation。不幸的是,我无法在 jsfiddle 上重现,因为它只发生在 iOS 模拟器中,我相信它与点击和触摸事件与点击事件的时间有关(由于缺少dbl 点击事件)
-
有点长镜头,但您的编辑按钮是否实现为单独的视图?如果是这样,那么值得看看使用Backbone.View.remove 清除事件处理程序是否有所作为。
标签: ios backbone.js coffeescript trigger.io