javascript - 删除元素上的触摸事件

标签 javascript jquery webkit mobile-safari touch-event

我有一个 DIV #overlay 位于 DIV #page 之上,但在 #page div 上,元素上有一个 overscroll: auto。

如何在#overlay 可见时禁用#page 上的所有触摸事件,然后在#overlay 隐藏后启用?

<div id="page">touchable content here</div>
<div id="overlay">sits on top of #page DIV</div>

这仅适用于移动 webkit。

最佳答案

CSS 解决方案 div#page { pointer-events: none; }


jQuery 解决方案

你的触摸事件 -

$('#page').click(function () {
    if($(this).hasClass('blockEvent')) return false;
    //do something...
});

当#overlay弹出时-

// display #overlay
$('#page').addClass('blockEvent');

当#overlay 关闭时 -

// close #overlay
$('#page').removeClass('blockEvent');

关于javascript - 删除元素上的触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8921238/

相关文章:

php - 输入的国际电话号码格式

Javascript回调函数——疑惑与误解

javascript - slideDown 和 Up 子 <li> 元素

加载 css3 过渡动画?

javascript - 使用 jQuery,通过 id 选择一个 Div,从下拉列表中选择并将其绘制在另一个 Div 中

javascript - JQuery:如何组合 .contains() 和 .replaceWith()?

javascript - 将VueJS与Axios一起使用后响应数据消失

css - 使用空白 : nowrap 时 Safari/WebKit 表溢出

ios - 使用 wkWebView iOS 10 打印预览问题

javascript - 单杠分析