2015-08-01 3 views
1

Моя задача состоит в том, чтобы иметь предупреждение от IPad, когда я DoubleTap на моем content.And я использовал этот код, чтобы проверить мой DoubleTapDoubleTap в Ipad с помощью Jquery

(function($){ 
// Determine if we on iPhone or iPad 
var isiOS = false; 
var agent = navigator.userAgent.toLowerCase(); 
if(agent.indexOf('iphone') >= 0 || agent.indexOf('ipad') >= 0){ 
     isiOS = true; 
} 

$.fn.doubletap = function(onDoubleTapCallback, onTapCallback, delay){ 
    var eventName, action; 
    delay = delay == null? 500 : delay; 
    eventName = isiOS == true? 'touchend' : 'click'; 

    $(this).bind(eventName, function(event){ 
     var now = new Date().getTime(); 
     var lastTouch = $(this).data('lastTouch') || now + 1 /** the first time this will make delta a negative number */; 
     var delta = now - lastTouch; 
     clearTimeout(action); 
     if(delta<500 && delta>0){ 
      if(onDoubleTapCallback != null && typeof onDoubleTapCallback == 'function'){ 
       onDoubleTapCallback(event); 
      } 
     }else{ 
      $(this).data('lastTouch', now); 
      action = setTimeout(function(evt){ 
       if(onTapCallback != null && typeof onTapCallback == 'function'){ 
        onTapCallback(evt); 
       } 
       clearTimeout(action); // clear the timeout 
      }, delay, [event]); 
     } 
     $(this).data('lastTouch', now); 
    }); 
};)(jQuery); 

И я называю этот код из моей страницы

$(".selector").doubletap(
/** doubletap-dblclick callback */ 
function(event){ 
    alert('double-tap'); 
}, 
/** touch-click callback (touch) */ 
function(event){ 
    alert('single-tap'); 
}, 
/** doubletap-dblclick delay (default is 500 ms) */ 
400); 

он работает в моем desktop.but, когда я открыть его в IPad он не работает properly.please предложить мне какие-то решения

ответ

0

Наконец я использовал этот код.

var elm1 = document.getElementById('test1'); 
var elm2 = document.getElementById('test2'); 
var timeout; 
var lastTap = 0; 
elm1.addEventListener('touchend', function(event) { 
var currentTime = new Date().getTime(); 
var tapLength = currentTime - lastTap; 
clearTimeout(timeout); 
if (tapLength < 500 && tapLength > 0) { 
    elm2.innerHTML = 'Double Tap'; 
    event.preventDefault(); 
} else { 
    elm2.innerHTML = 'Single Tap'; 
    timeout = setTimeout(function() { 
     elm2.innerHTML = 'Single Tap (timeout)'; 
     clearTimeout(timeout); 
    }, 500); 
} 
lastTap = currentTime; 
}); 
Смежные вопросы