Apologies to double post, but you may also find the Array#each() and
prototype's various enumerable functionalities useful as it seems
you're taking the long way around in a lot of your code. Link again:
http://www.prototypejs.org/api/enumerable

If you're starting out with prototype I'd also strongly recommend
Andrew Dupont's book on the subject as it's absolutely fantastic.

On Sep 18, 2:28 pm, bluezehn <[EMAIL PROTECTED]> wrote:
> I haven't read your post any more than seeing the expression
> "getElementsBySelector", but that alone prompts me to forward you to
> this link in the api:http://www.prototypejs.org/api/utility/dollar-dollar
>
> That's the prototype way of doing what you're trying to do. Try it out
> and if you have any further problems post back.
>
> On Sep 18, 2:06 pm, banry <[EMAIL PROTECTED]> wrote:
>
> > I'm trying to convert some code from mootools to prototype, but I can
> > get the first ul to work but none of the others add the hover class on
> > mouseover. its got something to do with the call to
> > getElementBySelector - any help appreciated
>
> > Event.onDOMReady(function(){
> > alert('DOM is loaded!');
> >         element = $('menu')
> >         if(!element.hasClassName('disabled')) {
> >                 var menu = new JMenu(element)
> >                 document.menu = menu
> >         };
>
> > });
>
> > var JMenu = Class.create();  // added pd
> >         JMenu.prototype = { // added pd
>
> >                 initialize: function(el){
> >                         var elements = el.getElementsBySelector('li');
> >                         alert(elements.length);
> >                         var nested = null;
> >                         for (var i = 0; i < elements.length; i++) {
> >                                 var element = elements[i];
> >                                   //alert(elements.length);
> >                                 Event.observe(element, 'mouseover', 
> > function(){
> >                                         this.addClassName('hover');
> >                                 });
> >                                 Event.observe(element, 'mouseout', 
> > function(){
> >                                         this.removeClassName('hover');
> >                                 });
>
> >                                 //find nested UL
> >                                 //nested = $E('ul', element);
> >                                 nested = 
> > element.getElementsBySelector('ul').first;
> >                                 if (!nested) {
> >                                         continue;
> >                                 }
>
> >                                 //declare width
> >                                 var offsetWidth = 0;
>
> >                                 //find longest child
> >                                 for (k = 0; k < nested.childNodes.length; 
> > k++) {
> >                                         var node = nested.childNodes[k]
> >                                         if (node.nodeName == "LI")
> >                                                 offsetWidth = (offsetWidth 
> > >= node.offsetWidth) ? offsetWidth :
> > node.offsetWidth;
> >                                 }
>
> >                                 //match longest child
> >                                 for (l = 0; l < nested.childNodes.length; 
> > l++) {
> >                                         var node = nested.childNodes[l]
> >                                         if (node.nodeName == "LI") {
> >                                                 $(node).setStyle('width', 
> > offsetWidth + 'px');
> >                                         }
> >                                 }
>
> >                                 $(nested).setStyle('width', offsetWidth + 
> > 'px');
> >                         }
> >                 }
> >         };
>
> >         <div id="module-menu">
>
> >                 <ul id="menu">
> >                         <!--<li class="node"><a>Tasks</a></li>-->
> >                         <li class="node"><a>Organisation</a>
> >                                 <ul>
> >                                         <li><a href="/companies" 
> > class="icon-16-cpanel">Companies</a></
> > li>
> >                                         <li 
> > class="separator"><span></span></li>
> >                                         <li><a href="/business_streams" 
> > class="icon-16-
> > cpanel">Business_streams</a></li>
> >                                         <li 
> > class="separator"><span></span></li>
>
> >                                         <li><a href="/employees" 
> > class="icon-16-user">Employees</a></li>
> >                                         <li 
> > class="separator"><span></span></li>
> >                                         <li><a href="/users" 
> > class="icon-16-user">Users</a></li>
> >                                         <li 
> > class="separator"><span></span></li>
> >                                         <li><a href="/roles" 
> > class="icon-16-user">Roles</a></li>
> >                                         <li 
> > class="separator"><span></span></li>
> >                                         <li><a href="/periods" 
> > class="icon-16-cpanel">Periods</a></li>
>
> >                                         <li 
> > class="separator"><span></span></li>
> >                                         <li><a href="/accounts" 
> > class="icon-16-cpanel">Accounts</a></li>
> >                                         <li 
> > class="separator"><span></span></li>
> >                                         <li><a href="/cost_centres" 
> > class="icon-16-cpanel">Cost Centres</
> > a></li>
> >                                         <li 
> > class="separator"><span></span></li>
> >                                         <li><a href="/cost_centre_accounts" 
> > class="icon-16-cpanel">Cost
> > Centre Accounts</a></li>
> >                                         <li 
> > class="separator"><span></span></li>
>
> >                                         <li><a href="/hierarchies" 
> > class="icon-16-cpanel">Hierarchies</
> > a></li>
> >                                         <li 
> > class="separator"><span></span></li>
>
> >                                 </ul>
> >                         </li>
> >                         <li class="node"><a>System Setup</a>
> >                                 <ul>
> >                                         <li><a href="/transaction_types" 
> > class="icon-16-
> > cpanel">Transaction Types</a></li>
>
> >                                         <li 
> > class="separator"><span></span></li>
> >                                         <li><a href="/reconciliation_types" 
> > class="icon-16-
> > cpanel">Reconciliation Types</a></li>
> >                                         <li 
> > class="separator"><span></span></li>
> >                                         <li><a 
> > href="/reconciliation_sub_types" class="icon-16-
> > cpanel">Reconciliation Sub Types</a></li>
>
> >                                 </ul>
> >                         </li>
> >                         <li class="node "><a>Reconciliation</a>
>
> >                                 <ul>
> >                                         <li><a 
> > href="/reconciliation_responses" class="icon-16-
> > cpanel">Reconciliation Responses</a></li>
> >                                 </ul>
> >                         </li>
>
> >                         <li class="node"><a>Help</a></li>
> >                 </ul>
>
> >         </div>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to