Here's some castly cimplified code of what I'm trying to do:

var myClass = Class.create({
  initialize : function() {
    this.id = 0;
    this.type = 'Undefined';
    this.assignedAudienceTypes = [];
    this.title = 'Untitled';
    this.add();
    return this;
  },
  add : function(renderTo) {
    this.setId();
    var containerDiv = document.createElement('div');
    containerDiv.writeAttribute('class', 'element-container');
    renderTo.appendChild(containerDiv);
    containerDiv.writeAttribute('id', 'element-container-' + this.id);

    var buttonDiv = document.createElement('div');
    buttonDiv.writeAttribute('class', 'button-container');
    renderTo.appendChild(buttonDiv);
    buttonDiv.writeAttribute('id', 'button-' + this.id);

    Event.observe('button-' + this.id, 'click', this.add);
  },
  setId : function(){
    if ( $$('.element-container').length ) {
      this.id = $$('.element-container').length - 1;
    }
  }
});

The basic idea is that I'm creating some html elements on the page
which contain a button which will add another new one to the page.

My code above is clearly wrong (I'm just setting out with full on
prototype coding) but I'm struggling to understand how to correct it.
For a start, while the setId function works first time round, second
time around "this" doesn't refer to the object but to the button
element that was clicked.

Any pointers greatly appreciated :)

-- 
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-scriptacul...@googlegroups.com.
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en.

Reply via email to