Javascript 使用RubyonRails和Turbolinks更改页面后,jQuery计时器继续运行

Javascript 使用RubyonRails和Turbolinks更改页面后,jQuery计时器继续运行,javascript,jquery,ruby-on-rails,ruby-on-rails-3,Javascript,Jquery,Ruby On Rails,Ruby On Rails 3,我的Rails应用程序中使用jQuery和Turbolinks的计时器有以下问题:我在图像幻灯片的起始页上运行了一个setTimeout计时器。当我点击一个链接时,页面会发生变化,但计时器一直在滚动,我想这是Turbolinks造成的。另外,当我重新进入起始页时,它会再次触发计时器并在旧的计时器上堆叠 我一直在玩clearTimeout(例如,尝试将其放置在不同的位置),但我无法让它工作。我想看看是否有一个setTimeout正在运行,然后在启动一个新的之前停止它,或者类似的东西 这是我在起始页

我的Rails应用程序中使用jQuery和Turbolinks的计时器有以下问题:我在图像幻灯片的起始页上运行了一个
setTimeout
计时器。当我点击一个链接时,页面会发生变化,但计时器一直在滚动,我想这是Turbolinks造成的。另外,当我重新进入起始页时,它会再次触发计时器并在旧的计时器上堆叠

我一直在玩
clearTimeout
(例如,尝试将其放置在不同的位置),但我无法让它工作。我想看看是否有一个
setTimeout
正在运行,然后在启动一个新的之前停止它,或者类似的东西

这是我在起始页上的计时器:

var timerSplash = setTimeout(splash, 5000);
我现在真的走投无路了,我需要帮助

你可以试试这个

if (window.timerSplash)
   clearTimeout(window.timerSplash);

window.timerSplash = setTimeout(splash, 5000);
你可以试试这个

if (window.timerSplash)
   clearTimeout(window.timerSplash);

window.timerSplash = setTimeout(splash, 5000);

谢谢你!我必须在application.js文件中放入clearTimeOut代码,然后在特定于页面的Javascript文件中放入实际的setTimeout代码,以使其真正起作用,但最终我得到了正确的组合。谢谢!我必须在application.js文件中放入clearTimeOut代码,然后在特定于页面的Javascript文件中放入实际的setTimeout代码,以使其真正起作用,但最终我得到了正确的组合。