Forum: Ruby on Rails Show and hide from list with toggle

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Marika A. (Guest)
on 2009-04-18 20:10
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:

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

Thank you!
Frederick C. (Guest)
on 2009-04-18 20:45
(Received via mailing list)
On Apr 18, 5:10 pm, Marika A. <removed_email_address@domain.invalid>
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
Marika A. (Guest)
on 2009-04-18 23:03
Frederick C. wrote:
> On Apr 18, 5:10�pm, Marika A. <removed_email_address@domain.invalid>
> 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 :(
Frederick C. (Guest)
on 2009-04-19 00:13
(Received via mailing list)
On Apr 18, 8:03 pm, Marika A. <removed_email_address@domain.invalid>
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 :(

Like I said, string interpolation:

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

Fred
Marika A. (Guest)
on 2009-04-19 13:14
Frederick C. wrote:
> On Apr 18, 8:03�pm, Marika A. <removed_email_address@domain.invalid>
> 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 :(
>
> 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 ;)
Frederick C. (Guest)
on 2009-04-19 13:52
(Received via mailing list)
On Apr 19, 10:14 am, Marika A. <removed_email_address@domain.invalid>
wrote:
>
> 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 ;)

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
Marika A. (Guest)
on 2009-04-19 14:07
Frederick C. wrote:
> On Apr 19, 10:14�am, Marika A. <removed_email_address@domain.invalid>
> wrote:
>>
>> 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 ;)
>
> 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

Thanks again :) I don't really know how I am supposed to do that :( I'm
doing:
<% linkki = ('link_long_'+link.id.to_s).toggle %>
<%= link_to_function "+", linkki, :style => 'text-decoration:none' %>
Frederick C. (Guest)
on 2009-04-19 15:07
(Received via mailing list)
On Apr 19, 11:07 am, Marika A. <removed_email_address@domain.invalid>
wrote:
> Frederick C. wrote:
>
> Thanks again :) I don't really know how I am supposed to do that :( 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
HeChian (Guest)
on 2009-04-19 19:18
(Received via mailing list)
<%= link_to_function "+", "$('link_long_id').toggle()", :style
=> 'text-decoration:none' %></td>

On Sun, Apr 19, 2009 at 12:10 AM, Marika A. <
removed_email_address@domain.invalid> wrote:

> I have a element for hidden info:
> Thank you!
> --
> Posted via http://www.ruby-forum.com/.
>
> >
>


--
Yes! I'm HeChian :)

http://hechian36.pixnet.net/blog
Ram (Guest)
on 2009-04-20 08:54
(Received via mailing list)
try

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

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

On Apr 19, 4:05 pm, Frederick C. <removed_email_address@domain.invalid>
This topic is locked and can not be replied to.