Tag: touchstart

Windows Phone的IE Touchstart事件在几秒钟后自动结束

我有一个非常具体的问题。 我正在写一个手机的网页,上面有一个button。 我在包括IE浏览器在内的所有浏览器上都检测到touchevent ,但是在IE浏览器上它非常具体。 几秒钟后自动结束。 你能以某种方式帮助我吗? 这里是我的代码(修改一个,但仍然不能正常工作): if (window.navigator.pointerEnabled) { tapButton.addEventListener("pointerup", function(e) { e.preventDefault(); addClass(this, 'clicked'); buttonTouched = true; }, false); tapButton.addEventListener("pointerdown", function(e) { e.preventDefault(); removeClass(this, 'clicked'); buttonTouched = false; }, false); alert("pointerEnabled"); } else if (window.navigator.msPointerEnabled) { tapButton.addEventListener("MSPointerDown", function(e) { e.preventDefault(); addClass(this, 'clicked'); buttonTouched = true; }, false); tapButton.addEventListener("MSPointerUp", function(e) { e.preventDefault(); removeClass(this, 'clicked'); […]

如何绑定“touchstart”和“点击”事件但不响应两者?

我正在开发一个可以在各种设备上工作的移动网站。 现在让我头痛的是黑莓手机。 我们需要同时支持键盘点击和触摸事件。 理想情况下,我只是使用: $thing.click(function(){…}) 但是我们遇到的问题是,这些黑莓设备中的一些从触摸到触发点击有一个非常恼人的延迟。 补救措施是改为使用touchstart: $thing.bind('touchstart', function(event){…}) 但是我怎样才能约束这两个事件,但是只能发射一个呢? 我仍然需要键盘设备的点击事件,但是当然,如​​果我正在使用触摸设备,不希望点击事件触发。 一个额外的问题:是否有这样做,并附加适应甚至没有touchstart事件的浏览器? 在研究中,看起来像黑莓OS5不支持touchstart,所以也需要依靠点击事件的浏览器。 附录: 也许更全面的问题是: 使用jQuery,是否有可能/build议使用相同的绑定处理触摸交互和鼠标交互? 理想情况下,答案是肯定的。 如果没有,我有一些select: 1)我们使用WURFL来获取设备信息,这样可以创build我们自己的设备matrix。 根据设备,我们将使用touchstart或点击。 2)通过JS在浏览器中检测触摸支持(我需要做一些更多的研究,但似乎是可行的)。 但是,这仍然留下一个问题:支持两者的设备呢? 我们支持的部分手机(即诺基亚手机和黑莓手机)同时拥有触摸屏和键盘。 所以那种把我带回原来的问题……有没有一种方法可以立即允许两个?