javascript - 带有 event.preventDefault 的 HTML

标签 javascript iphone html ios4

如果 html 文档被禁用。 (没有滚动...)

document.ontouchmove = function(event){ event.preventDefault(); }

我可以有选择地启用 html 文档中的元素吗?例如 div、span 我应该使用什么 JavaScript 来做到这一点?

最佳答案

这是一个相当老套的解决方案。

按如下方式更改您的 touchmove 处理程序:

document.ontouchmove = function (event) {
    if (!event.elementIsEnabled) {
        event.preventDefault();
    }
};

然后对于您要启用的元素:

element.ontouchmove = function (event) {
    event.elementIsEnabled = true;
};

这之所以有效,是因为:

  • 当元素上触发 touchmove 事件时,这两个事件处理程序都会在冒泡阶段处理该事件。这意味着元素 touchmove 处理程序首先触发,因为它最接近事件源。
  • 当两个事件处理程序处理同一事件时,它们会接收相同的事件对象。
  • 您可以在事件对象上设置自己的任意属性。

因此,元素 touchmove 处理程序只是在事件对象上设置自定义属性,然后文档 touchmove 处理程序检查该自定义属性以确定是否执行默认操作应该预防。

关于javascript - 带有 event.preventDefault 的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3508540/

相关文章:

javascript - 如果一个函数仅在另一个函数中使用,我应该将其保留在函数内部还是外部?

ios - 是否可以使用 Alamofire swift 在 api 命中时将数组和字典都发送到参数中?

html - 哪种字体嵌入技术可以抑制抗锯齿?

iphone - Xcode 构建脚本来分离图像 channel ?

javascript - 如何让这个多幻灯片面板无限循环

javascript - 为什么当我点击打印按钮时@media print 的选择器没有显示正确的格式?

javascript - 具有高于 Number.MAX_SAFE_INTEGER 的值有什么意义?

javascript - 使用 mvc 打印 pdf

javascript - 将多个数组元素组合成javascript中的单个对象

iphone - 这个变量的属性/返回值?