【发布时间】:2013-12-16 09:39:16
【问题描述】:
我有一个正在使用 phonegap 构建的应用程序。
我正在监听 touchstart/touchend 事件以使其响应。
有时,touchend 的事件侦听器会触发,但随后,例如,输入将在 300 毫秒后触发 click 事件后聚焦。
一个例子是,我有一个菜单侧边栏。每个侧边栏列表项都会监听 touchend 事件。收到事件后,侧边栏关闭并显示相关页面。但是,如果相关页面包含用户单击侧边栏列表项的表单元素,则该表单元素将获得焦点。
在整个应用程序中阻止这种情况的最佳方法是什么?它发生在各种场景中,因手机而异。
我尝试过诸如 stopPropagation 之类的方法,但这些仅在少数情况下有效,我需要一个通用的跨应用解决方案,而不是为每个功能添加,如果可能的话。
类似:
$('body').on('touchend', function(){
//stop any further touchends/ clicks from firing
//apart from the 1 i do want
})
【问题讨论】:
-
你试过
event.preventDefault()吗? -
你应该看看hammer.js - 它为这类事情做了所有繁重的工作
-
嗨,这有时也有效,但似乎不适用于每种情况编辑:对于 preventDefault() 选项
标签: javascript jquery mobile cordova