Yes, to ALL ULs. And I want to add method only to selected UL's -
those, which are instances of MyMenu.

So far the only working workaround I know is using global object -
MyMenuFactory:

MyMenuFactory = {
  createMenu: function () {
    var menu = new Element('ul');
    menu.addItem = function () { ... }
  }
}

The results are similar to what I want, but from the OOP point of view
it's wrong - and besides it uses one more name in global namespace (I
would like to avoid it)


@Nicolás Sanguinetti: to insert/update yes, but what if I want to
remove the menu later?

--
Rafal Zarajczyk

On Dec 7, 3:53 pm, "Richard Quadling" <[EMAIL PROTECTED]>
wrote:
> On 07/12/2007, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>
>
>
>
>
> > is it possibile to create a subclass of DOM Elements? For example I
> > would like to be able to write:
>
> > var MyMenu = Class.create('UL', {
> >   initialize: function () {
> >   },
> >   addItem: function (item) {
> >     // create new LI and attach to this
> >   }
> > });
>
> > var menu = new MyMenu();
> > menu.addItem('hello');
>
> > and I would like this code to create a new UL element, which would
> > have an addidional addItem method. Is it possible?
>
> Absolutely.
>
> You can use ...
>
> Element.addMethods('UL', {
>         addItem: function(element, s_TextOrHTML) {
>                 // Extend the select.
>                 element = $(element);
>
>                 // Create the new LI
>                 var o_LI = document.createElement('LI');
>                 element.insert(o_LI);
>                 o_LI.update(s_TextOrHTML);
>
>                 return element;
>         }
>
> });
>
> maybe. Slightly tested.
>
> This adds a new method to all ULs.
>
> $('someULid').addItem('Text or <b>html</b>');
>
> --
> -----
> Richard Quadling
> Zend Certified Engineer :http://zend.com/zce.php?c=ZEND002498&r=213474731
> "Standing on the shoulders of some very clever giants!"
--~--~---------~--~----~------------~-------~--~----~
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