what i usually do is savethis to a local var.
addControl: function(pCntrlType) {
var obj;
var self = this;
switch (pCntrlType) {
case "TXTB":
obj = new Element('input', {
'id': 'textbox1',
'styles': {
position: 'absolute'
},
'events': { 'click': function() {
grabControl(self);
}
}
}).inject($('tdMainCenterRight'));
break;
}
this.makeElementDragable(obj);
},
Fábio Miranda Costa
Engenheiro de Computação
http://meiocodigo.com
On Tue, Jul 7, 2009 at 8:58 AM, Gafa <[email protected]> wrote:
>
> Yes and No as it then changes the "this" being passed to grabControl
> (this) <- "this" parameter should refer to the newly created textbox
> object and doesn't.
>
> any other suggestions?
>
> thanks
>
> On Jul 6, 7:37 pm, Fábio M. Costa <[email protected]> wrote:
> > 'events': { 'click': function() {
> > grabControl(this);
> > }.bind(this)
> > }
> >
> > this doesnt work?
> >
> > Fábio Miranda Costa
> > Engenheiro de Computaçãohttp://meiocodigo.com
> >
> > On Mon, Jul 6, 2009 at 6:12 PM, Gafa <[email protected]> wrote:
> >
> > > var test= new Class({
> > > Implements: Options,
> >
> > > options: {
> > > myOp: "DDD
> > > },
> > > initialize: function(options) {
> > > this.setOptions(options);
> > > },
> > > addControl: function(pCntrlType) {
> > > var obj
> >
> > > switch (pCntrlType) {
> > > case "TXTB":
> > > obj = new Element('input', {
> > > 'id': 'textbox1',
> > > 'styles': {
> > > position: 'absolute'
> > > },
> > > 'events': { 'click': function() {
> > > grabControl(this);
> > > }
> > > }
> > > }).inject($('tdMainCenterRight'));
> > > break;
> > > }
> >
> > > this.makeElementDragable(obj);
> > > },
> > > grabControl: function(pEl) {
> > > //this.updateControlPosition(pEl);
> >
> > > //set class varial to seleted control
> >
> > > },
> > > makeElementDragable: function(pObj) {
> >
> > > new Drag.Move(pObj, {
> > > container: $('tdMainCenterRight'),
> > > droppables: '#tdMainCenterRight',
> > > precalculate: 'true',
> >
> > > onDrag: function(el, event) {
> > > //this.updateControlPosition(el);
> > > } .bind(this)
> > > });
> > > }
> > > });
> >
> > > Problem is when I use this class and the grabControl function is
> > > called from within the click event, it errors, I know I need to bind
> > > the grabControl function from the class to the click event but I can't
> > > figure it out.
> >
> > > Thanks
>