听取touchend有时会点击事件移动

时间:2013-12-16 09:39:16

标签: javascript jquery mobile cordova

我有一个带有phonegap的应用程序。

我正在听touchstart / touchend事件以使其响应。

有时候,touchend的事件监听器会触发,但是,例如,当点击事件在300ms之后被触发时,输入将会聚焦。

一个例子是,我有一个菜单边栏。每个侧边栏列表项都会监听touchend事件。收到活动后,侧边栏会关闭,并显示相关页面。但是,如果相关页面包含用户单击侧栏列表项的表单元素,则表单元素将被聚焦。

在整个应用中停止此操作的最佳方法是什么?它发生在各种不同的手机情况下。

我已尝试过像stopPropagation等这样的东西,但这些只在少数情况下有效,我需要有一个通用的跨应用解决方案,而不是为每个功能添加,如果可能的话。

类似的东西:

$('body').on('touchend', function(){
    //stop any further touchends/ clicks from firing
    //apart from the 1 i do want
})

2 个答案:

答案 0 :(得分:0)

你可以尝试触摸'而不是' touchend',看看它是否有效:)祝你好运。

答案 1 :(得分:0)

你的应用程序快速;) 简单的方法: 只需输入一个setTimeout(gotopage(),100) 在每个按钮/菜单操作上

艰难的方式: 如果你真的不想放一个setTimeout,你应该看看冒泡是如何工作的,问题就在这里

提示: 无论如何要避免300毫秒,你应该使用FTLABS的Fastclick: https://github.com/ftlabs/fastclick 和使用点击事件,它将为你完成工作(你仍然必须使用setimeout技巧)