Link_to_remote 'this'


#1

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


#2

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}’)”})


#3

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


#4

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:
removed_email_address@domain.invalid

Is this what you are looking for?