On 11 Feb 2009, at 10:41, David wrote:
>
> I have some RJS that could use some refactoring. I use the function
> called with afterFinish twice and Im wondering what the best way to
> refactor is. This is all inline rjs in the controller mind you:
>
> page.visual_effect :slide_down, "add_appt_#{params
> [:day]}", :afterFinish => "function(){
> $('end_drop_#{params[:day]}_#{params
> [:appt_counter]}').style.display = 'block';
> $('end_drop_#{params[:day]}_#{params
> [:appt_counter]}').style.visibility = 'hidden';
> $('start_drop_#{params[:day]}_#{params
> [:appt_counter]}').style.display = 'block';
> $('start_drop_#{params[:day]}_#{params
> [:appt_counter]}').style.visibility = 'hidden';
> }"
Yummy :-). if you're using prototype you can replace
$('end_drop_foo').style.display = 'block';
$('end_drop_foo').style.visibility = 'hidden';
with
$('end_drop_foo').setStyle({display: 'block', visibility: 'hidden'})
If i were you I'd have in my application.js a function like
function resetVisibility(element){
element.setStyle({display: 'block', visibility: 'hidden'})
}
then then your rjs stuff looks like
resetVisibility('end_drop_#{params[:day]}_#{params[:appt_counter]}')
resetVisibility('start_drop_#{params[:day]}_#{params[:appt_counter]}')
or even right the whole thing as a js function (RJS can be a bit of a
crutch)
Fred
>
> >
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---