2012-04-11 5 views
4

Ich benutze Seadragon Ajax mit jQuery Touch Event Listeners.touchstart Sperrtaste Listener

Der Behälter hat Berührungsstart, Berührungsbewegungs und touchend daran gebunden, heres die Berührung starten:

.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(); 
     }) 

Innerhalb der seadragon Ansicht sind einige erzeugt Tasten. Diese Tasten sind nicht auf einem Tablet aufgrund der Touchstart auf seinem Container div. Es funktioniert gut mit einer Maus.

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

Ich muss überprüfen, um zu sehen, ob die Berührung einer Taste ist oder nicht, bevor all die Dinge in der Berührungsstart Funktion aber wirklich bin nicht sicher, wie.

Antwort

1

gelöst durch eine Zugabe von if-Anweisung die Anzahl der Berührungen, wie unten zu überprüfen:

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


     })