I messed with binding ... don't know how I missed that.

Thanks!

On Jul 6, 2009, at 5:23 PM, Oskar Krawczyk wrote:


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