Я использую функцию двойного щелчка 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, он говорит «[окно объекта]».
Как это решить?
Я также обнаружил эти ошибки для jquerymobile. Вот почему мое решение будет, не используйте jquery mobile, и достаточно использовать только jquery. –
Переключен на плагин Finger. Прекрасно работает. http://ngryman.sh/jquery.finger/ – Mbrouwer88