0

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

    $("#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
    }
4

1 回答 1

3

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

setIntervalclearInterval

像这样更新您的代码

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

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

    });

然后getDirection每 2 秒调用一次。

于 2012-05-15T19:40:48.550 回答