【问题标题】:mouseUp firing after button click in mobile Safari (iOS simulator)在移动 Safari(iOS 模拟器)中单击按钮后触发 mouseUp
【发布时间】: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


【解决方案1】:

我相信 iOs 会延迟 mouseup,以确定是否正在执行长触摸。这可能会有所帮助:

http://cubiq.org/remove-onclick-delay-on-webkit-for-iphone

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-30
    • 2015-10-18
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 2016-09-12
    • 2013-08-20
    • 2011-06-13
    相关资源
    最近更新 更多