Bil*_*lie 7 javascript cordova
我在js的顶部有以下权利(这是iScroll插件工作所需的).
document.addEventListener('touchmove', function (e) {e.preventDefault();}, false);
Run Code Online (Sandbox Code Playgroud)
在某些页面上,我需要重新启用此功能,以便正常的iPhone滚动接管(以及修复在页面上使用iscroll时iphone键盘不会在输入框上弹出的错误).
我无法锻炼语法.有人知道吗?
sky*_*000 12
您将需要定义一个处理preventDefault行为的函数,如下所示:
document.addEventListener('touchmove', preventDefault, false);
function preventDefault(e) { e.preventDefault(); };
Run Code Online (Sandbox Code Playgroud)
这样,您可以在代码中删除事件侦听器并重新启用默认滚动:
document.removeEventListener('touchmove', preventDefault, false);
Run Code Online (Sandbox Code Playgroud)
现在,您可以在需要时重新添加和删除它.
您无法使用原始帖子中的内联匿名函数来完成此操作,因为您可以引用匿名函数的唯一方法是先触发它然后删除对它的引用,例如:
document.addEventListener('touchmove', function(e) {
e.preventDefault();
// some more logic...
this.removeEventListener('touchmove', arguments.callee, false);
}, false);
Run Code Online (Sandbox Code Playgroud)
显然这不是你想要的效果.您还可以创建一个对象并存储对处理该事件的方法的引用.如果你想深入一点,我发现这个帖子很有帮助:如何在匿名函数上删除事件管理器?
| 归档时间: |
|
| 查看次数: |
7589 次 |
| 最近记录: |