touchstart阻止按钮监听器

4
我正在使用结合jQuery触摸事件监听器的Seadragon Ajax。
容器绑定了touchstart、touchmove和touchend事件,这里是touchstart事件:
.bind('touchstart MSPointerDown', function(e){

            var p = coord(e.originalEvent);
            p.start = true;
            p.scale = 1;
            if(e.originalEvent.pointerType === 4) return;
            else if(e.originalEvent.pointerType !== undefined) e.originalEvent.preventMouseEvent();

            $(this).data(p);            

            e.preventDefault();
            e.stopPropagation();
        })

在海龙视图中生成了一些按钮。由于容器div上的touchstart事件,这些按钮在平板电脑上无法触发,但用鼠标则可以正常工作。
new Seadragon.Button("Click to go", "", "", "", "", null, moveFunction, null, null, null );

在touchstart函数中的所有操作之前,我需要检查触摸是否在按钮上,但我真的不确定如何实现。

1个回答

1

通过添加一个if语句来检查触摸的数量,问题得到了解决,代码如下:

.bind('touchstart MSPointerDown', function(e){
            if (event.touches.length != 1) {
                e.preventDefault();
                e.stopPropagation();
            }

            var p = coord(e.originalEvent);
            p.start = true;
            p.scale = 1;
            if(e.originalEvent.pointerType === 4) return;
            else if(e.originalEvent.pointerType !== undefined) e.originalEvent.preventMouseEvent();

            $(this).data(p);        


        })

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接