hi,
when you observe
Event.observe('button-' + this.id, 'click', this.add);
a new anonymous add fucntion is created.
To be sure it will be binded to this,
Event.observe('button-' + this.id, 'click',
this.add.bindAsEventListener(this));
On Wed, Apr 28, 2010 at 1:53 PM, Jangla <[email protected]> wrote:
> 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
> [email protected].
> To unsubscribe from this group, send email to
> [email protected]<prototype-scriptaculous%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/prototype-scriptaculous?hl=en.
>
>
--
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 [email protected].
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.