4

私はjQueryタッチイベントリスナーでSeadragonAjaxを使用しています。

コンテナには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();
        })

シードラゴンビューの中には、いくつかのボタンが生成されています。これらのボタンは、コンテナdivのタッチスタートのため、タブレットでは起動しません。マウスで問題なく動作します。

new Seadragon.Button("Click to go", "", "", "", "", null, moveFunction, null, null, null );

タッチスタート機能のすべてのものの前に、タッチがボタン上にあるかどうかを確認する必要がありますが、実際にはその方法がわかりません。

4

1 に答える 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);        


        })
于 2012-04-12T11:31:26.980 に答える