【问题标题】:remove touch event on element删除元素上的触摸事件
【发布时间】:2012-01-19 05:00:52
【问题描述】:

我有一个 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。

【问题讨论】:

    标签: javascript jquery webkit mobile-safari touch-event


    【解决方案1】:

    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');
    

    【讨论】:

    • 我不认为这是正确的,我说的是禁用触摸事件,而不是 CSS。
    • 然后在显示#overlay 时只给出'pointer-events: none' 选项。
    • 在触摸设备上不起作用,这是我想要完成的。
    • 那么你应该使用稍微复杂一点的方法。我将编辑此答案,以便所有人都能看到。
    猜你喜欢
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-15
    相关资源
    最近更新 更多