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..