this.element.addEvent('click',this.detach.bind(this));

On Jul 6, 11:52 pm, rpflo <[email protected]> wrote:
> Got the event working, but I can't figure out how to detach.
>
> var TestEventObj = new Class({
>
>         initialize: function(element) {
>                 this.element=$(element);
>                 this.attach();
>         },
>
>         testEvent: function(event){
>                 console.log(event.page.x);
>         },
>
>         attach: function(){
>                 this.element.addEvent('mousemove',this.testEvent);
>                 this.element.addEvent('click',this.detach);
>         },
>
>         detach: function(){
>                 this.element.removeEvent('mousemove',this.testEvent);
>         }
>
> });
>
> In detach() I get ::  TypeError: Result of expression
> 'this.element' [undefined] is not an object.
>
> On Jul 6, 4:11 pm, Ryan Florence <[email protected]> wrote:
>
>
>
> > So I've got this stuff in a class
>
> >         startMove: function(el){
> >                 el.addEvent('mousemove',this.move(el,event));
> >         },
>
> >         move: function(el,event){
> >                 el.setStyles({
> >                         'left': event.page.x-(el.getSize().x/2),
> >                         'top': event.page.y-(el.getSize().y/2)
> >                 });
> >         },
>
> >         stop: function(el){            
> >                 el.removeEvent('mousemove',this.move);
> >         }
>
> > But it doesn't work ... Result of expression 'event' [undefined] is  
> > not an object.
>
> > I know there's a syntax thing going on here.  How do I send that event  
> > object into the move function?
>
> > I had this working when the whole move function's code was nested  
> > inside the startMove function.  But then I couldn't remove the event.
>
> > Thanks!
>
> > Ryan Florencehttp://ryanflorence.com/blog/

Reply via email to