我有一个执行不可逆操作的按钮,除非用户将鼠标悬停在其上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)
    })


我不确定如果他们早点将鼠标移开,如何停止倒计时

最佳答案

您需要清除超时。因此,可以在下一个调用时触发:

    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的工作中看到它:

https://codepen.io/aminshahrokhi/pen/VNJBYZ

10-08 08:08
查看更多