繁体   English   中英

具有event.preventDefault的HTML

[英]HTML with event.preventDefault

如果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处理程序仅在事件对象上设置自定义属性,然后文档touchmove处理程序检查该自定义属性,以确定是否应阻止默认操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM