Jquery 使用Mousedown和setTimeout函数反复触发函数

Jquery 使用Mousedown和setTimeout函数反复触发函数,jquery,settimeout,mousedown,Jquery,Settimeout,Mousedown,我想在mousedown事件使用setTimeout时重复使用call函数,它根本不起作用。有人知道吗 $("#image_360").mousedown( function() { mouseStillDown=true; $(this).data('timeout', window.setTimeout(function () { getDirection; }, 2000)); }, func

我想在mousedown事件使用setTimeout时重复使用call函数,它根本不起作用。有人知道吗

    $("#image_360").mousedown( function() {
        mouseStillDown=true;
        $(this).data('timeout', window.setTimeout(function () {

            getDirection;
        }, 2000));
    },
    function()
    {
        clearTimeout($(this).data('timeout'));
        alert('mouse left');

    });

    function getDirection(e){
    var x = e.pageX;
            //do stuff with condition e.pageX
    }

您需要使用
setInterval()
clearInterval()
方法来重复调用和清除计时器,而不是
setTimeout
clearTimeout

像这样更新代码

    $("#image_360").mousedown( function() {
        mouseStillDown=true;
        $(this).data('timeout', window.setInterval(function () {

            getDirection;
        }, 2000));
    },
    function()
    {
        clearInterval($(this).data('timeout'));
        alert('mouse left');

    });

然后每隔2秒调用一次
getDirection

您需要使用
setInterval()
clearInterval()
方法来重复调用和清除计时器,而不是
setTimeout
clearTimeout

像这样更新代码

    $("#image_360").mousedown( function() {
        mouseStillDown=true;
        $(this).data('timeout', window.setInterval(function () {

            getDirection;
        }, 2000));
    },
    function()
    {
        clearInterval($(this).data('timeout'));
        alert('mouse left');

    });
然后每隔2秒调用一次
getDirection