I believe you should queue your divs to hide/show them. In case it helps this is something I have tested and am planning to use in one of my applications. It needs a lot of work to make it better and DRYer but it still does the work I need it to do. It is all based on the model errors but I think it could give you an idea about the queuing of the effects. I hope it helps.
view: <table style="width: 100%;" > <tr class="tab_rows"> <%= link_to_function get_tab_link('first_link'), get_tab_effects('first_link') -%> <%= link_to_function get_tab_link('second_link'), get_tab_effects('second_link') -%> <%= link_to_function get_tab_link('third_link'), get_tab_effects('third_link') -%> ..... </tr> ..... </table> ..... <div id="sections"> <div id="first_link" <%= display?('first_link') -%>> <div id="section"> <%= render :partial => 'first_link' %> </div> </div> <div id="second_link" <%= display?('second_link') -%>> <div id="section"> <%= render :partial => 'second_link' %> </div> </div> <div id="third_link" <%= display?('third_link') -%>> <div id="section"> <%= render :partial => 'third_link' %> </div> </div> ... </div> <!-- sections --> helper: def get_tab_link(section) '<td>' + section.capitalize + '</td>' end def get_tab_effects(section) case section when 'first_link' "new Effect.Fade('second_link', {duration:0.1}); new Effect.Fade('third_link', {duration:0.1, queue: 'end'}); new Effect.Appear('first_link', {duration:0.1, queue: 'end'});" when 'second_link' "new Effect.Fade('first_link', {duration:0.1}); new Effect.Fade('third_link', {duration:0.1, queue: 'end'}); new Effect.Appear('second_link', {duration:0.1, queue: 'end'});" when 'third_link' "new Effect.Fade('first_link', {duration:0.1}); new Effect.Fade('second_link', {duration:0.1, queue: 'end'}); new Effect.Appear('third_link', {duration:0.1, queue: 'end'});" .... end def display?(section) case section when 'first_link' return nil if @my_model.errors.empty? or errors_on? section when 'second_link' return nil if errors_on? section unless errors_on? 'first_link' when 'third_link' return nil if errors_on? section unless (errors_on? ('first_link') || errors_on?('second_link')) ... end # Default to not display section 'style = "display:none"' end On Feb 3, 1:41 am, Charanya Nagarajan <li...@ruby-forum.com> wrote: > Hi all, > > I have a list of links in a page,i have toggling effect associated with > them > <%= link_to_function("#{article.title}", nil ) do |page| > page.visual_effect :toggle_blind, "article_content_#{article.id}" > end %> > The Number of links is dynamic. > Now if i click on link1 the div associated with it(article_content_1) is > toggled and shown. > Now,like if i click on any other link,the first link which i had clicked > before should close .So whenever i click any link,only the div > associated with it should be shown,and in case if there are any other > divs associated with anyotehr link is shown,they should get hidden. > > Kindly suggest me some ways. > > Thanks in Advance > > Charanya > -- > Posted viahttp://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-t...@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.