在另一个滚动事件中设置一个div的scrolltop会导致无限循环

时间:2011-03-27 15:56:21

标签: javascript

我正在尝试编写一个jquery插件,用于在两个div中同步读取不同的内容。当一个div滚动时,另一个div的scrollTop将在事件的代码中设置。

问题是当scrollTop被设置时,另一个div的滚动事件将被触发,然后第一个div的scrollTop将被设置,另一个div的scroll事件将被触发(接着是无穷无尽的循环)。

与此情况类似:

  1. 两名士兵收到同样的命令,“当你看到另一名士兵跳跃时跳起来。”
  2. 然后,当你命令其中一个跳跃时,它们会永远跳跃。
  3. 示例代码:

    function syncReading(contentDiv) {
        this.contentDiv = contentDiv;
        contentDiv.onscroll = function(){
            this.Scroll();
        }
    }
    
    syncReading.prototype.Scroll = function() {
        //calc scrolldistance;
        for(var i in divCollection)
        {
            if(this != divCollection[i])
            {
                divCollection[i].scrollTop=scrollDistance;
            }
        }
    }
    
    var one = new syncReading(getelementbyid("one");
    var other = new syncReading(getelementbyid("other"));
    var divCollection = [one,other];
    

    (英语不是我的母语。)

0 个答案:

没有答案