需要使用jQuery计时事件的帮助

6
这是我的代码:

        tripper = 2;
    $("#topheader").mousewheel(function(event, delta) {
        if (tripper == 2){
            startPlace = $("#content").scrollLeft();
            startCounter = something;
            tripper = 1;
        } else {
            currentPlace = $("#content").scrollLeft();
            if(startCounter < 100){ // milliseconds
            distanceMoved = currentPlace - startPlace;
                if(distanceMoved > 100){
                    slideRight();
                } else if(distanceMoved < -100){
                    slideLeft();
                }
            } else {
                tripper = 2;
            }
        }
    }

如何正确检查自此函数第一次执行以来是否已经过了100毫秒?在代码的第5行中,我有一个名为“something”的变量,需要用某种计数器替换它。或者我可能完全走错了。有什么建议吗?

2个回答

5
您可以像这样实例化“Date”对象:
var then = new Date();

稍后您可以再创建一个:
var now = new Date();

减法给出毫秒级别的差异:

var elapsed = now - then;

当两个日期值出现在减法运算符的两侧时,从“Date”到“Number”的强制转换是隐含的。此转换类似于调用“now.getTime()”。


3
以下代码未经测试,但基本上,在100毫秒后,它应该将timeout重置为null,并最终将tripper设置回2;
tripper = 2;
timeout = null;
$("#topheader").mousewheel(function(event, delta) {
    if (tripper == 2){
        startPlace = $("#content").scrollLeft();
        if (!timeout) {
            setTimeout(function() {
                timeout = null
            }, 100);
        }
        tripper = 1;
    } else {
        currentPlace = $("#content").scrollLeft();
        if(timeout){ // milliseconds
            distanceMoved = currentPlace - startPlace;
            if(distanceMoved > 100){
                slideRight();
            } else if(distanceMoved < -100){
                slideLeft();
            }
        } else {
            tripper = 2;
        }
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接