重新启用touchmove eventlistener.iPhone应用程序与手机差距
Re-enabling touchmove eventlistener. iPhone app with Phone gap
我有以下权利在我的js的顶部(这是需要的iScroll插件的工作)。
document.addEventListener('touchmove', function (e) {e.preventDefault();}, false);
在某些页面上,我需要重新启用这个,以便正常的iPhone滚动接管(并修复在页面上使用isscroll时iPhone键盘不弹出输入框的错误)。
我无法练习语法。有人知道怎么做吗?
您需要定义一个处理preventDefault行为的函数,如下所示:
document.addEventListener('touchmove', preventDefault, false);
function preventDefault(e) { e.preventDefault(); };
这样,您就可以在稍后的代码中删除事件侦听器并重新启用默认滚动:
document.removeEventListener('touchmove', preventDefault, false);
现在你可以随时重新添加和删除它。
你不能使用内联的匿名函数来实现这一点,就像你在原来的帖子中那样,因为你可以引用匿名函数的唯一方法是首先让它触发,然后删除对它的引用,例如:
document.addEventListener('touchmove', function(e) {
e.preventDefault();
// some more logic...
this.removeEventListener('touchmove', arguments.callee, false);
}, false);
显然这不是你想要的效果。您还可以创建一个对象并存储对处理事件的方法的引用。如果你想深入一点,我发现这个线程很有帮助:如何在匿名函数上删除eventlistener ?
在我的iphone上的addEventLister之后,我不能再删除它们了。但这对我有用。
var prevent = preventDefault(e) { e.preventDefault(); };
//To disable drag
element.ontouchmove = prevent;
...
//To enable it agian
element.ontouchmove = null;
相关文章:
- iPhone应用程序jquery中的滑块导航菜单
- 带有webkit和PhoneGap的iPhone原生应用程序之间的差异
- 如何阻止iPhone web应用程序链接在Safari中打开
- 无法在iPhone应用程序上使用PhoneGap和javascript获取JSON结果,但使用相同的代码在Android
- 让Laravel应用程序同时服务于基于浏览器的应用程序,并充当iPhone和Android应用程序的API的最佳实践是什
- iPhone应用程序或移动野生动物园的动画PNG文件的替代方案,目标是模拟短视频剪辑的即时播放
- 如何确定网站是在 iPhone/Android 浏览器上打开的,还是从 iPhone/Android 应用程序网页视图打
- 为什么我的HTML5 / JS应用程序不能在我的iPhone上运行
- iPhone设备黑色屏幕在我的jQuery手机Gap应用程序导航中闪烁
- iOS 应用程序(iPhone 和 iPad)中的阿拉伯字体
- LinkedIn是否在其iPhone应用程序中使用PhoneGap或 Trigger.IO?
- Tableau 报告未显示在 iPhone 和 iPad asp.net 应用程序中
- 拉斐尔拖拽 + iPhone = 悲伤的相机应用程序
- 如何在ios应用程序中更改位置iPhone时制作旋转照片
- 有什么方法可以隐藏搜索栏,直到用户向上滚动..类似于iPhone上的消息应用程序
- 在iPhone的删除模式下应用程序抖动的算法
- 当您在iPhone上访问他们的网站时,预测io使用什么框架来“下载”应用程序
- 如何在我的网页上为iPhone用户创建一个注释,说明有一个应用程序
- 谷歌地图无法在iPhone / iPad工作灯6.2应用程序上运行
- 使用移动网络应用程序在iphone地图上显示位置