h5移动端阻止浏览器长按事件

Posted nightfallsad

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了h5移动端阻止浏览器长按事件相关的知识,希望对你有一定的参考价值。

移动端长按图片或者元素的时候会出现默认的浏览器事件,这样会影响自定义的长按行为,很麻烦。微信的图片和元素的长按事件效果如下

找到了一个方式去掉,参考https://segmentfault.com/q/1010000005088048
首先要把图片放到div的背景图片中(用图片试了不行,如果有大神可以指点下),这样再长按的时候长按的是DIV

代码如下,注意引jQuery

    //长按触发事件
    $.fn.longLongPress = function () {
        var div = $(this);
        $(this).on({
            touchstart: function(e){
                console.log(\'a\')
                timeOutEvent = setTimeout(function(){
                    //阻止长按默认行为
                    $(div).bind(\'contextmenu\', function(e) {
                        e.preventDefault();
                    })
                },200);

            },
            touchmove: function(e){
                clearTimeout(timeOutEvent);
                timeOutEvent = 0;

            },
            touchend: function () {
                clearTimeout(timeOutEvent);
                if(timeOutEvent != 0){
                    console.log(\'这是点击,不是长按\');
                }
                return false;
            }
        })
    }
    $(\'div\').longLongPress();//给div设置背景图片并加上长按事件

以上是关于h5移动端阻止浏览器长按事件的主要内容,如果未能解决你的问题,请参考以下文章

H5移动端禁止长按弹出系统菜单"选择复制","在浏览器打开"

h5 移动端在阻止touchstart的默认事件时报错

移动端h5禁用浏览器左滑右滑的前进后退功能

H5移动端页面禁用长按选中文本

Js实现移动端长按事件

关于iscroll阻止浏览器默认动作