Javascript 使用收割台旋转导轨设置限时出现故障2.3.9
我有不同的标题,我想循环通过一个计时器,应该执行每一次页面加载的基础上。目前,我已经工作了一次,但在第一次更改标题后停止。我不太擅长javascript,如果有人能给我指出正确的方向,我将不胜感激 下面是我目前所拥有的 在lib/Rotator.rb中:Javascript 使用收割台旋转导轨设置限时出现故障2.3.9,javascript,ruby-on-rails,Javascript,Ruby On Rails,我有不同的标题,我想循环通过一个计时器,应该执行每一次页面加载的基础上。目前,我已经工作了一次,但在第一次更改标题后停止。我不太擅长javascript,如果有人能给我指出正确的方向,我将不胜感激 下面是我目前所拥有的 在lib/Rotator.rb中: class Rotator def self.header_rotator(number) partials = ["header", "header2", "header3", "header4", "header5"] ran
class Rotator
def self.header_rotator(number)
partials = ["header", "header2", "header3", "header4", "header5"]
random_header = partials[number]
return random_header
end
end
然后在application.html.haml的标题部分,我有:
var start_rotate = setTimeout(rotate, 5000);
function rotate() {
remote_function(:url => {:action})
$("#header").replaceWith('#{escape_javascript( render :partial => "shared/#{Rotator.header_rotator(rand(5))}")}')
start_rotate = setTimeout(rotate, 5000);
}
正如我所说的,这很好,但只旋转一次,然后停止
任何帮助都将不胜感激 这不是关于js的,而是关于理解什么东西在何时何地运行 如果您查看正在呈现的HTML,事情应该会变得更清楚。调用
escape\u javascript
,render
只发生一次:在主页加载的呈现过程中插入字符串。因此,第二次(以及第三次、第四次、第五次……)rotate()运行时,它将使用完全相同的HTML替换标头
假设您使用的是jquery,load方法可以执行以下操作:
$('#header').load('/some/server/path')
在响应此请求时,不要忘记在没有布局的情况下进行渲染
最后,您确定要使用Ajax吗?您可以预先加载所有头变量,然后使用JavaScript依次显示它们。(有许多jquery cycle或slideshiw插件正是这样做的)尝试使用setInterval,谢谢您的回复!我不会用任何特别的方法来完成这项任务。我试图使用一种我可以轻松实现的方法。我什么都愿意。