如何使用jquery获取双击之间的时间差

How to get the time difference between double clicks using jquery?

本文关键字:之间 时间差 双击 获取 何使用 jquery      更新时间:2023-09-26

我想得到两次单击单个按钮之间的时间差。我有我的标记像这个

<a href="#">click here</a>

我使用这段代码来获得两次点击之间的时间差。

var clickedTime = '';
var lastClicked = '';
$('body').on('click', 'a', function(e) {
    var d = new Date();
    clickedTime = lastClicked;
    lastClicked = d.getTime();
    console.log(clickedTime);
    console.log(lastClicked);
});

但它在两个控制台中显示的时间相同。有人能告诉我如何计算时差吗?

这里有一个简单的jQuery函数,可以为每次x点击返回所需格式的时差-演示

<button>Get Time Difference</button>
(function ($) {
 $.fn.clickTimer = function ($param, $numbClicks) {
    function msTotime(ms) {
        var mill = ms % 1000;
        var seconds = Math.floor((ms / 1000) % 60);
        var minutes = Math.floor((ms / (60 * 1000)) % 60);
        switch ($param) {
            case "ms":
                return ms;
                break;
            case "s":
                return seconds;
                break;
            default:
                return [minutes, seconds, mill];
        }
    }
    var counter = 0;
    var Start_Time;
    this.click(function (event) {
        counter++;
        if (counter == $numbClicks) {
            counter = 0;
            var now = event.timeStamp;
            Diff = now - Start_Time;
            console.log(msTotime(Diff));
        } else {
            Start_Time = event.timeStamp;
        }
    });
    return this;
 };
})(jQuery);

用法:

$(selector).clickTimer(time format , number of clicks);
 $("button").clickTimer("ms", 2);
 // returns time difference in milliseconds for every 2 clicks
 $("button").clickTimer("s", 2);
 // returns time difference in seconds
 $("button").clickTimer(false, 2);
 // returns an array [minutes, seconds, milliseconds]

让我知道你的想法。这绝对不是一个完美的解决方案,但它可能会让你开始。

您可以使用Date.prototype.getTime()来获取点击事件的时间。

var click = 0;
var time;
var difference;
$("a").click(function(){
    var date = new Date();
    click += 1;
    if (click == 2) {
        difference = date.getTime() - time;
        click = 0;
        console.log(difference);
    }
    else
        time = date.getTime();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<a>Please double click on me!</a>

或者使用事件的Event.timeStamp属性。

var click = 0;
var time;
var difference;
$("a").click(function(e){
    click += 1;
    if (click == 2) {
        difference = e.timeStamp - time;
        click = 0;
        console.log(difference);
    }
    else
        time = e.timeStamp;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<a>Please double click on me!</a>

请注意,代码返回的差异时间以毫秒为单位