Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 3秒钟后,鼠标悬停在启用按钮上,鼠标悬停时禁用并停止倒计时_Javascript_Jquery - Fatal编程技术网

Javascript 3秒钟后,鼠标悬停在启用按钮上,鼠标悬停时禁用并停止倒计时

Javascript 3秒钟后,鼠标悬停在启用按钮上,鼠标悬停时禁用并停止倒计时,javascript,jquery,Javascript,Jquery,我有一个按钮,做一些不可逆转的事情,我试图把它锁定,除非用户悬停在它上面3秒钟。如果等待3秒钟,按钮将启用。一旦鼠标离开,它就会再次禁用。如果在倒计时3秒期间鼠标也停止,则停止倒计时 $('#delete_btn').on('mouseover', function () { setTimeout(function () { $('#delete_btn').prop('disabled', false) }, 3000)

我有一个按钮,做一些不可逆转的事情,我试图把它锁定,除非用户悬停在它上面3秒钟。如果等待3秒钟,按钮将启用。一旦鼠标离开,它就会再次禁用。如果在倒计时3秒期间鼠标也停止,则停止倒计时

    $('#delete_btn').on('mouseover', function () {
        setTimeout(function () {
            $('#delete_btn').prop('disabled', false)
        }, 3000)
    })

    $('#delete_btn').on('mouseout', function () {
            $('#delete_btn').prop('disabled', true)
    })

如果他们提前鼠标退出,我不知道如何停止倒计时

这是W3School的复制粘贴,基本上您必须将超时“保存”到变量中,然后在悬停时清除超时:

var myVar;

function myFunction() {
  myVar = setTimeout(function(){ alert("Hello"); }, 3000);
}

function myStopFunction() {
  clearTimeout(myVar);
}

我希望这有帮助:)

您需要清除超时。所以,它准备在下一次呼叫时开火:

    var timeout;

    $('#delete_btn').on('mouseover', function() {
        timeout = setTimeout(function() {
            $('#delete_btn').prop('disabled', false);
        }, 3000);
    });

    $('#delete_btn').on('mouseout', function() {
        clearTimeout(timeout);
        $('#delete_btn').prop('disabled', true);
    });
在CodePen的工作中查看: