【问题标题】:How can I measure the time between click and release in javascript?如何在javascript中测量点击和释放之间的时间?
【发布时间】:2009-06-24 14:20:41
【问题描述】:

我想在用户点击一个对象时启动一个计时器,并在用户释放点击时停止它。全部使用 javascript/jquery。

【问题讨论】:

  • 如果您在这里告诉我们您要完成的工作可能会更好
  • 我解释为他想测量按下鼠标按钮的时间。但是,是的,澄清问题可能会有所帮助

标签: javascript jquery


【解决方案1】:

以下内容应该可以帮助您入门

var start_time;
function start() {
    start_time = new Date();
}
function end() {
    var now = new Date();
    alert(now-start_time);
}

$('#element_id').mousedown(start);
$('#element_id').mouseup(end);

mousedown 事件将运行设置开始时间的开始函数。 mouseup 事件将从当前时间减去开始时间。结果以毫秒为单位

【讨论】:

  • 这就是我想要的。谢谢
  • 并且您可能想要添加 mouseout(),以显示时间差异,以防用户在释放之前将鼠标拖到元素之外。或者在文档上设置 mouseup(),并设置一个标志来确保鼠标在元素内被点击。这样,用户释放鼠标按钮的位置就无关紧要了......
  • @peirix 嘿!我先说了 ;) +1 给你。
【解决方案2】:

$("#element").mousedown(); 可以让您记录用户点击的时间,同样$("#element").mouseup(); 可以让您记录按钮释放的时间。

var start = 0;
$("#element").mousedown(function() { start = new Date(); });
$("#element").mouseup(function() {
    var cur = new Date();
    alert(cur-start);
}

【讨论】:

  • 注意鼠标按下元素,然后在释放之前将鼠标从元素上拉开的用户。
【解决方案3】:
function myTimer() {
    doSomething();
}

$('#thing').mousedown(function() {
    $(this).data('timerHandle', setTimeout(myTimer));
});
$('#thing').mouseup(function() {
    clearTimeout($(this).data('timerHandle'));
}

【讨论】:

  • 我会使用 .data 而不是在 ie 中泄漏的自定义属性
猜你喜欢
  • 1970-01-01
  • 2021-12-12
  • 1970-01-01
  • 1970-01-01
  • 2011-07-09
  • 2012-05-22
  • 2017-05-19
  • 1970-01-01
  • 2023-03-27
相关资源
最近更新 更多