gpt4 book ai didi

javascript - 重新启用 touchmove 事件监听器。带有 Phonegap 的 iPhone 应用程序

转载 作者:数据小太阳 更新时间:2023-10-29 04:32:48 28 4
gpt4 key购买 nike

我的 js 顶部有以下内容(iScroll 插件需要它才能工作)。

document.addEventListener('touchmove', function (e) {e.preventDefault();}, false);

在某些页面上,我需要重新启用它,以便正常的 iPhone 滚动接管(并修复当在页面上使用 iscroll 时 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);

显然这不是您想要的效果。您还可以创建一个对象并存储对处理事件的方法的引用。如果您想更深入地研究,我发现此线程很有帮助:How to removeEventListener on anonymous function?

关于javascript - 重新启用 touchmove 事件监听器。带有 Phonegap 的 iPhone 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7488336/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com