我正在将Seadragon Ajax与jQuery touch事件监听器一起使用。
容器已绑定(bind)到touchstart,touchmove和touchend,以下是触摸开始:
.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();
})
在seadragon View 内部,生成了一些按钮。由于平板电脑的容器div上的touchstart,这些按钮在平板电脑上无法触发。用鼠标可以正常工作。
new Seadragon.Button("Click to go", "", "", "", "", null, moveFunction, null, null, null );
我需要在touchstart功能中的所有内容之前检查触摸是否在按钮上,但是真的不确定如何操作。
最佳答案
通过添加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);
})