Show and hide from list with toggle

I have a list in my page and I want to show there additional information like:

my link + show me more my 2 link + show me more etc..

I have a element for hidden info: <div id="link_long_<%= link.id %>" style="display:none"> <%= link.long %> </div>

How can I pass a link id with something like this:

  &lt;%= link\_to\_function &quot;\+&quot;, &quot;link\_long\_id&quot;\.toggle\(\), :style =&gt;

'text-decoration:none' %></td>

well assuming the link had id 23, the javascript you'd want to generate would be $('link_long_23').toggle() - just build up that string, using the usual string interpolation stuff for example

Fred

Frederick Cheung wrote:

Frederick Cheung wrote: >> <div id="link_long_<%= link.id %>" style="display:none"> >> <%= link.long %> >> </div>

>> How can I pass a link id with something like this:

>> <%= link_to_function "+", "link_long_id".toggle(), :style => >> 'text-decoration:none' %></td>

> well assuming the link had id 23, the javascript you'd want to > generate would be $('link_long_23').toggle() - just build up that > string, using the usual string interpolation stuff for example

> Fred

Yes, but how can I pass link_long_id instead of giving the link_long_23? I can't get that working :frowning:

Like I said, string interpolation:

greeting = "world" puts "hello #{greeting}"

Fred

Frederick Cheung wrote:

Frederick Cheung wrote: >> >> 'text-decoration:none' %></td>

>> > well assuming the link had id 23, the javascript you'd want to >> > generate would be $('link_long_23').toggle() - just build up that >> > string, using the usual string interpolation stuff for example

>> > Fred

>> Yes, but how can I pass link_long_id instead of giving the link_long_23? >> I can't get that working :frowning:

> Like I said, string interpolation:

> greeting = "world" > puts "hello #{greeting}"

> Fred

Thank you Fred for your answer, but unfortunately that doesn't work. I get an error: 'undefined method `toggle' for "link_long_23":String' So it gets the id correctly, problem is the toggle? I'm quite new with all this, so I'm sorry if I ask stupid questions :wink:

that sounds like you're still doing something like

link_to_function ,'blah', "$('something')".toggle

That's not what you want to do. you want to create the string "$ ('something').toggle" and pass that as the second argument to link_to_function (that second argument should be a fragment of javascript).

Fred

Frederick Cheung wrote:

Frederick Cheung wrote:

Thanks again :slight_smile: I don't really know how I am supposed to do that :frowning: I'm doing: <% linkki = ('link_long_'+link.id.to_s).toggle %>

If you do that you're trying to call a ruby function called toggle. What you want to do is generate a javascript fragment that calls a toggle function, so .toggle() needs to be inside the string that you generate, not outside as it is here.

Fred

try

link_to_function "+", "Effect.toggle ('$('something')', 'slide');"

this should, if it works, throw in a nice sliding effect for u too..