需要帮助使用jquery计时事件

时间:2011-05-25 17:36:24

标签: javascript jquery timer

这是我的代码:

        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 个答案:

答案 0 :(得分:5)

您可以像这样实例化“Date”对象:

var then = new Date();

稍后你可以再做一个:

var now = new Date();

减法给出了以毫秒为单位的差异:

var elapsed = now - then;

(当两个日期值出现在减法运算符的两侧时,从“Date”到“Number”的强制是隐式的。转换就像调用“now.getTime()”一样。)

答案 1 :(得分: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;
        }
    }
}