如何使用Rails Helpers排队JS

时间:2009-05-27 05:51:04

标签: javascript ruby-on-rails

假设我想排队这些JS调用,可以使用Rails助手吗?

render :update do |page|
 page.replace_html replace_html 'notice', flash[:notice]
 page.visual_effect :blind_down, "notice", :duration => 0.5
 page.visual_effect :blind_up, "notice", :duration => 0.5
end

感谢。

1 个答案:

答案 0 :(得分:1)

Scriptaculous效果有一个queue选项,您可以将其作为参数提供给visual_effect。例如,

render :update do |page|
 page.replace_html replace_html 'notice', flash[:notice]
 page.visual_effect :blind_down, "notice", :duration => 0.5, :queue => 'end'
 page.visual_effect :blind_up, "notice", :duration => 0.5, :queue => 'end'
end

将对两个效果进行排队,以便在失明结束前不会启动失明效果。

有关队列如何工作以及可以为队列提供的参数的详细信息,请参阅script.aculo.us github wiki上的Effect Queues(例如,默认情况下,页面使用一个队列,但是您如果您希望各种效果队列并行运行,可以定义多个队列)。 :queue可以使用字符串(如上所述)或哈希,这样可以进行更多自定义:

:queue => { :position => 'end', :scope => 'my_effect_queue' }