此选择器不使用doubletap插件

时间:2016-08-25 09:54:20

标签: jquery

我使用jquery doubletap函数来检测android和IOS上的doubleclicks。

(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时,它会显示“[object Window]”。

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

切换到手指插件,就像一个开箱即用的魅力!

http://ngryman.sh/jquery.finger/