Forum: Ruby on Rails link_to_remote 'this'

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.
Ca34930c48de6831d3162b9631e62b5e?d=identicon&s=25 Ben (Guest)
on 2009-02-02 20:00
(Received via mailing list)
When using something like

link_to_function "Label", "some_function(this);"

the 'this' references the href generated by the rails
link_to_function.

When using something like

link_to_remote(task.id_description,
      {:update => {:success => "div1", :failure => "div2"},
      :url => {:action => :some_action, :id => id},
      :id => id,
      :before => "Element.show('spinner')",
      :complete => "Element.hide('spinner'); some_function(this)"})

the 'this' references something different, I believe the Ajax call
itself.

Is there a way of accessing the href as you can in the
link_to_function? I want to be able to access it so I can change its
className to indicate its been selected and change all the other hrefs
on the same level to be unselected.

Thanks
8d38199a01d2243e313c48456c6ddff9?d=identicon&s=25 Daly (Guest)
on 2009-02-02 20:14
(Received via mailing list)
You should be able to do this:

link_to_remote(task.id_description,
      {:update => {:success => "div1", :failure => "div2"},
      :url => {:action => :some_action, :id => id},
      :id => id,
      :before => "Element.show('spinner')",
      :complete => "Element.hide('spinner'); some_function('#
{id}')"})
Ca34930c48de6831d3162b9631e62b5e?d=identicon&s=25 Ben (Guest)
on 2009-02-02 20:31
(Received via mailing list)
Isn't that just going to pass in the value of the variable 'id'?

'this' actually references an object in the DOM and thats what I need
from the function_to_remote so I can then manipulate it and other
objects in relation to its position within the DOM.

Thanks
8d38199a01d2243e313c48456c6ddff9?d=identicon&s=25 Daly (Guest)
on 2009-02-05 18:08
(Received via mailing list)
Hey Ben,

So when I put my code snippet in my app, this is the rendered html:

Ruby:
<% id = "user_#{@user.id}" %>
<%= link_to_remote(@user.login,
        :update => {:success => "div1", :failure => "div2"},
        :url => {:action => :some_action, :id => :some_id},
        :before => "Element.show('spinner')", :complete =>
"Element.hide('spinner'); some_function('#{id}')",
        :html => {:id => id})
%>

HTML:
<a onclick="Element.show('spinner'); new Ajax.Updater
({success:'div1',failure:'div2'}, '/content/some_action/some_id',
{asynchronous:true, evalScripts:true, onComplete:function(request)
{Element.hide('spinner'); some_function('user_1006137')}}); return
false;" id="user_1006137" href="#">test@test.com</a>

Is this what you are looking for?
This topic is locked and can not be replied to.