window.setInterval - 是否可以有多个?怎么样?

时间:2011-06-02 14:05:48

标签: javascript jquery jquery-ui

我创建了一个幻灯片小部件,使用了与window.setInterval一起使用的jQuery.UI小部件。 我试图在同一页面中有多个幻灯片,我得到以下结果:

  • 如果我尝试使用图片为我的两个div调用相同的小部件:

    $('#div1').slideshow();  
    $('#div2').slideshow();
    

    它们都不起作用;

  • 我克隆了我的小部件的定义并命名为slideshowsmall

    $('#div1').slideshow();  
    $('#div2').slideshowsmall();
    

只有第二个有效。

我的小部件代码在这个pastebin中,但我真的认为问题,至少在第二次尝试中,与setInterval

有关

由于

2 个答案:

答案 0 :(得分:3)

多个setInterval()本身不会导致问题。它更可能与它正在执行的代码有关(并且你的小部件代码非英语使得很难分析和理解)。

setInterval()返回“interval”的整数ID,以便稍后通过传递此ID来clearInterval(...)。此方案完全针对多间隔使用实施。有关MDC

的更多详情

答案 1 :(得分:1)

根据您的窗口小部件代码,当 setInterval 调用ChangeLeft / Right ..方法时, slideshowdiv 变量始终指向调用slideShow的最后一个元素。这样做的原因是你调用不可建议的变更方法。

请使用以下代码调用您的更改方法,它应该可以解决您的问题。您会注意到我正在传递 slideshowdiv 对象来更改方法。

this.options.timer = window.setInterval(function () {
                ChangeImageLeft(velocidade, slideshowdiv);
            }, intervalo);

如果您需要更多信息,请与我们联系。