使用 JavaScript/jQuery 的鼠标按下计时器

发布于 2024-11-09 12:51:30 字数 84 浏览 3 评论 0原文

我如何知道用户按住鼠标按钮(网页上的任何位置)的时间有多长?我想在用户按住鼠标按钮至少 2-3 秒时执行一个功能(最好在此过程中取消鼠标按下)。这可能吗?

How can I know how long a user has been holding the mouse button down (anywhere on a webpage)? I want to execute a function when the user held the mouse button for at least 2-3 seconds (preferably cancelling the mouse down in the process). Is this possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

坦然微笑 2024-11-16 12:51:30

在这里:

$(window).mousedown(function(e) {
    clearTimeout(this.downTimer);
    this.downTimer = setTimeout(function() {
        // do your thing 
    }, 2000);
}).mouseup(function(e) {
    clearTimeout(this.downTimer);
});

现场演示: http://jsfiddle.net/simevidas/Pe9sq/2/< /a>

Here you go:

$(window).mousedown(function(e) {
    clearTimeout(this.downTimer);
    this.downTimer = setTimeout(function() {
        // do your thing 
    }, 2000);
}).mouseup(function(e) {
    clearTimeout(this.downTimer);
});

Live demo: http://jsfiddle.net/simevidas/Pe9sq/2/

晨与橙与城 2024-11-16 12:51:30

我会立即使用 jQuery 和 $("body").mouseup(function(){})$("body").mousedown(function(){}) 进行实验/代码>。我想你可以启动一个计时器,它会在 2 到 3 秒内调用函数。如果发生 mouseup 事件,那么您可以取消计时器。您可以使用简单的脚本对其进行测试,但您可能必须查看由于单击页面上的链接或按钮而可能发生点击的情况。但作为起点,我会尝试使用 $("body").mousedown$("body").mouseup。如果有机会,我会看看是否可以发送代码示例。

Off hand I would experiment with $("body").mousedown(function(){}) using jQuery and $("body").mouseup(function(){}). I guess you can start a timer which will call function in 2 to 3 seconds. If the mouseup event occurs, then you can cancel the timer. You could probably test it with a simple script but you might have to look at cases where the click might have occurred because a link or button was clicked on the page. But as a starting point I would experiment with the $("body").mousedown and $("body").mouseup. If I have chance I'll see if I can send a code sample.

猫七 2024-11-16 12:51:30

试试这个:

function WhateverYoudLikeToExecWithinNext3Seconds(){
    // Code goes here.
}

element.addEventListener('mousedown', function(){
    setTimeout(function(){WhateverIdLikeToExecWithin3Seconds();}, 3000);
}, false);

Try this:

function WhateverYoudLikeToExecWithinNext3Seconds(){
    // Code goes here.
}

element.addEventListener('mousedown', function(){
    setTimeout(function(){WhateverIdLikeToExecWithin3Seconds();}, 3000);
}, false);
笙痞 2024-11-16 12:51:30

看看这个。
http://jsfiddle.net/b1Lzo60n/

Mousedown 启动一个计时器,检查 1 秒后鼠标是否仍然按下。

<button id="button">Press me</button>
<div id="log"></div>

代码:

var mousedown = false;
var mousedown_timer = '';
$('#button').mousedown(function(e) {
    mousedown = true;
    $('#log').text('mousedown...');
    mousedown_timer = setTimeout(function() {
        if(mousedown) {
            $('#log').text('1 second');
        }
    }, 1000);
}).mouseup(function(e) {
    mousedown = false;
    clearTimeout(mousedown_timer);
    $('#log').text('aborted');
});

Check out this one.
http://jsfiddle.net/b1Lzo60n/

Mousedown starts a timer that checks if mouse is still down after 1 second.

<button id="button">Press me</button>
<div id="log"></div>

Code:

var mousedown = false;
var mousedown_timer = '';
$('#button').mousedown(function(e) {
    mousedown = true;
    $('#log').text('mousedown...');
    mousedown_timer = setTimeout(function() {
        if(mousedown) {
            $('#log').text('1 second');
        }
    }, 1000);
}).mouseup(function(e) {
    mousedown = false;
    clearTimeout(mousedown_timer);
    $('#log').text('aborted');
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文