2016-08-25 3 views
0

Я использую функцию двойного щелчка jquery для обнаружения двойных кликов на Android и IOS.Этот селектор не работает с плагин doubletap

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

Тогда, в зависимости от мобильного да/нет, я использую этот код для запуска события.

if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { 

     $('#table1 tbody tr').doubletap(function() { 

      var href = $(this).attr("relationid"); 
      alert(this); 
      if (href) { 
       window.location = 'details/?id=' + href; 
      } 
     }); 
    }else{ 
     $('#table1 tbody tr').click(function() { 
      var href = $(this).attr("relationid"); 
      if (href) { 
       window.location = 'details/?id=' + href; 
      } 
     }); 
    } 

Строка таблицы выглядит следующим образом:

<tr class="test odd" relationid="1" role="row"> 
    <td>1</td> 
    <td class="sorting_1">Testklant</td> 
    <td>90.00</td> 
</tr> 

Проблема заключается в том, что при использовании DoubleTap(), то relationid атрибут не выбран. Он работает нормально, используя click().

Когда я предупреждаю var href, он говорит «[окно объекта]».

Как это решить?

+0

Я также обнаружил эти ошибки для jquerymobile. Вот почему мое решение будет, не используйте jquery mobile, и достаточно использовать только jquery. –

+0

Переключен на плагин Finger. Прекрасно работает. http://ngryman.sh/jquery.finger/ – Mbrouwer88

ответ

Смежные вопросы