Thanks Rob.

After coming up with this bit of code I knew that it was way too much
than required and the tips you have provided has helped out.

Thanks.

Seth

On May 30, 9:17 pm, RobG <[EMAIL PROTECTED]> wrote:
> On May 31, 4:28 am, Seth Buntin <[EMAIL PROTECTED]> wrote:
>
>
>
> > I am trying to figure out if this is the best way to implement this
> > functionality.  And wonder if anyone can help.  Here is the quick
> > markup
>
> > <div class="section">
> >         <h1><a href="#" class="section-heading">Buyer/Seller Materials</a></
> > h1>
> >         <ul id="bsm_list" class="list">
> >                 <li>Test 1</li>
> >                 <li>Test 2</li>
> >                 <li>Test 3</li>
> >         </ul>
> > </div>
>
> > I am using UJS4Rails to call this after the DOM is initialized.  Here
> > is the UJS code:
>
> > <%= apply_behaviour "ul.list", "this.style.display = \"none\";" %>
> > <%= apply_behaviour "a.section-heading:click", "new Effect.toggle($($($
> > ($(this).parentNode).parentNode).descendants()[2]).id, 'blind',
> > {duration: .2});" %>
>
> this will refer to the a element, so there is no need for $() around
> that.
> parentNode is a standard DOM Core function, so no need for the next
> outer $(). To use descendants, you need to convert to a Prototype.js
> extended DOM element, so do that.  Now we've reduced:
>
>   $($($(this).parentNode).parentNode).descendants
>
> to:
>
>  $(this.parentNode.parentNode).descendants
>
> There's no point in getting an id to pass to $() to get back to
> exactly the same element.  Since the descendants method returns an
> array that doesn't include empty text nodes, you can do:
>
>   new Effect.toggle( $(this.parentNode.parentNode).descendants()[2],
>                              'blind',
>                              {duration: .2}
>   );
>
> but it seems to make more sense to do:
>
>   new Effect.toggle( $(this).up('h1').next('ul'),
>                              ...
>   );
>
> or
>
>   new Effect.toggle( $(this.parentNode).next('ul'),
>                              ...
>   );
>
> > The basic problem is how IE and Firefox differ from the length of
> > childNodes.  The issue I want to tackle is not having to specifiy the
> > index "2"
>
> Firefox isn't your issue (other browsers include empty text nodes too,
> you should always allow for quirks in HTML to DOM conversion).  Try to
> never tie an effect to an exact DOM layout, keep it as loosely coupled
> as is reasonable (see above).
>
> --
> Rob


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Spinoffs" 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-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to