views:

64

answers:

2

I have a code that looks like this.

<%= link_to_remote "View results",
{
    :update=>"uxUpdateDiv" ,
    :url=>{:controller=>"exam", :action=>"results"}  ,
    :loading=>visual_effect(:appear, "uxcLoader", :duration=> 0.1),
    :before =>visual_effect(:fade, "uxUpdateDiv", :duration => 0.1),
    :complete => visual_effect(:appear, "uxUpdateDiv", :duration => 1.5 ),
    :success=>visual_effect(:fade, "uxcLoader", :duration=> 1)
}
%>

what happens here is not good enough for me.

I want to add multiple effects for one event. Like the following:

 :complete=>(:fade, "uxLoader", :duration=>1 AND :fade, "uxTheOtherDiv", :duration=>1)

How do i achieve this.? I am using jrails

+3  A: 

You can write like this:

:complete=>update_page do |page|
            page.visual_effect :fade, "uxLoader", :duration=>1
            page.visual_effect :fade, "uxTheOtherDiv", :duration=>1
           end

See the api.

dombesz
thanks..is the order in which we give going to be the queue order?
ZX12R
Do you refer to chaining the effects? If thats the case its better to write javascript code like the comment above. Because the chaining is a javascript library specific function. You can do like this: :complete => "$('uxLoader').fadeIn(1000,function() { $('uxTheOtherDiv').fadeIn(1000));});"
dombesz
oh..noted..thanks
ZX12R
A: 

Using straight jQuery?

:complete => "$('uxLoader').fadeIn(1000); $('uxTheOtherDiv').fadeIn(1000);"
nathanvda
very straightforward. but i need rb code.
ZX12R
inside your :complete you can just write the javascript; so just replace your :complete line with mine above. This is how i do it all the time.
nathanvda