Travis wrote:
> I'm having some problems with a class I am creating.  My end goal is
> to be able to instantiate a class and use its return value as a
> particular object.
>
> So far, here's my code:
>
> SomeDiv = Class.create ({...});
>
> Event.observe(window, 'load', function() {
>       $('otherDiv').appendChild(new SomeDiv());
> });
>
> Firebug says: "Node cannot be inserted at the specified point in the
> hierarchy" so my guess is that it is not creating the div object.  Any
> suggestions?  Thanks!
Travis,

Not sure exactly what functionality you're trying to achieve, but using 
the "new" keyword will always return an object of that instance.  
Element#appendChild requires that the argument given be a DOM Element.  
You'll need to do something along these lines:

SomeDiv = Class.create({
  initialize: function(msgNode) {
    this.node = new Element("div");
    this.msg = $(msgNode);
    // add some custom method to our node
    this.node.manipulate = this.manipulate.bind(this);
    // garbage collect
    Event.observe(window, 'unload', function() {
      this.node.manipulate = null;
    }.bind(this));
  },
  manipulate: function(style, html) {
    // do stuff to the node
    this.node.setStyle(style);
    this.node.update(html);
    this.msg.update('manipulated');
  }
});

Event.observe(window, 'load', function() {
  $('otherDiv').appendChild(new SomeDiv().node);
});


- Ken Snyder

--~--~---------~--~----~------------~-------~--~----~
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 rubyonrails-spinoffs@googlegroups.com
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