Javascript 在计时器内设置scrollLeft不会';行不通

Javascript 在计时器内设置scrollLeft不会';行不通,javascript,jquery,Javascript,Jquery,我有一只很奇怪的虫子。我试图限制jquery鼠标滚轮函数中滚动调用的数量。我设置了一个计时器来限制调用,但它似乎没有调用函数scrollLeft。但是,如果它没有包装在任何计时器中,它就可以工作。这是某种本地JS错误吗?或者有人找到了解决办法吗 $(document).ready(function() { var scrpos=0; var limitTimer; var did= true; $('html, body, *').bind('mousewhee

我有一只很奇怪的虫子。我试图限制jquery鼠标滚轮函数中滚动调用的数量。我设置了一个计时器来限制调用,但它似乎没有调用函数scrollLeft。但是,如果它没有包装在任何计时器中,它就可以工作。这是某种本地JS错误吗?或者有人找到了解决办法吗

$(document).ready(function() {
    var scrpos=0;
    var limitTimer;
    var did= true;

    $('html, body, *').bind('mousewheel', function(event,delta){

        var BODY= this;

        if (did){
            did =false;


            if (delta > 0) {
                if (scrpos >= $(document).width() - $(window).width()){

                    }else{
                    scrpos += 100;
                }

            } else {
                if (scrpos !== 0){
                    scrpos -= 100;
                }
            }


            BODY.scrollLeft = scrpos;
            console.log(scrpos);



            var limitTimer = setTimeout(function(){

                did=true;
                clearTimeout(limitTimer);

            }, 150);

        }
        //Works here when outside the call
        //BODY.scrollLeft = scrpos;



    });
 });

你用什么浏览器来测试这个?还有,为什么要将事件分配给
html
body
和所有(
*
)呢?这个选择器让我害怕……我正在使用Chrome和FireFox。这一事件的原因是为了涵盖Firefox的滚动功能,因为Firefox不支持简单的html、body,这是一个已知的错误。因此,我正在使用(*)。
limitTimer
可能存在范围问题。