On Dec 30, 2011, at 9:58 AM, Walter Lee Davis wrote:
>
> On Dec 30, 2011, at 11:32 AM, Craig White wrote:
>
>> Previous versions of Rails, I could just...
>>
>> (app/helpers/application_helper.rb)
>> def set_focus_to_id(id)
>> javascript_tag("$('#{id}').focus()");
>> end
>>
>> then in any view, do something like
>> <%= set_focus_to_id 'user_uid' %>
>>
>> but this doesn't work in Rails 3.1.x
>>
>> What is the new preferred method for doing this?
>
> View source (in a browser) and see if you have the prototype.js library
> loaded. focus() is a Prototype method (unless I'm wrong and it's in jQuery as
> well) and without the library it won't work.
>
> 3.1 switched to jQuery, which annoys me, but there is a gem you can add to
> put things right again.
>
> One other thing to look at -- is your call to set_focus_to_id appearing (in
> source) below the element it refers to? If it isn't, then you have to wrap
> your call in an observer callback, so that you are sure that the DOM is ready
> and knows about the element you're trying to modify.
>
> If your code is at the bottom of your view, then you should be fine, but if
> it's above the referenced element, or if it's in a content_for :head block,
> then you have to do something like this:
>
> #prototype-flavored javascript
> document.observe('dom:loaded', function(){
> //your code here
> });
----
duh... prototype - I don't think it's useful to load both prototype and jquery
as I'm already using a bunch of query.
I'll see if I can figure out how to change that to a jquery friendly method.
Thanks
Craig
--
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.