Hi,

I've created a class who create an input element and assign options's
events to this element.
But when i bind this for the function's event the object isn't updated
if it has change.

//Declare myClass
        var myClass = new Class({
            Implements:[Options,Events],
            options : {
                'name':'',
                'key':null
            },

            element : null,
            firstParam : null,

            initialize : function(options){
                this.setOptions(options);
                this.element = new Element('input',{
                    'type':'text'
                });

                if(Object.getLength(this.$events)){
                    for(type in this.$events){
                        var fFunc = this.$events[type][0].bind(this);
                        this.element.addEvent(type,fFunc);
                    }
                };
            }

        });

        //Declare mySecondClass
        var mySecondClass = new Class({
            Implements: [Options, Events],
            options: {
                'myClasses':[]
            },

            mainElement : null,

            initialize: function(options){
                this.setOptions(options);
                this.mainElement = new
Element('div').inject(document.body);
                this.myFunction();
                return this;
            },

            myFunction : function(){
                this.options.myClasses.each(function(tmpMyClass,key){
                    console.log('update '+tmpMyClass.options.name+' =>
'+key);
                    tmpMyClass.options.key = key;
                    tmpMyClass.options.firstParam = key;
                    tmpMyClass.element.inject(this.mainElement);
                },this);
            }

        });

        //Launch myNewSecondClass
        window.addEvent('domready',function(){
            myNewSecondClass = new mySecondClass({
                'myClasses':[
                    new myClass({
                        'name':'first class',
                        'onBlur':function(that){
                            console.log('first myClass options key :
',this.options.key);
                            console.log('first myClass param :
',this.firstParam);
                        }
                    }),
                    new myClass({
                        'name':'second class',
                        'onBlur':function(that){
                            console.log('second myClass options key :
',this.options.key);
                            console.log('second myClass param :
',this.firstParam);
                        }
                    })
                ]
            });
        });

Console.log result :

update first class => 0
update second class => 1

//Blur first input :
first myClass options key : null
first myClass param : null

//Blur second input :
second myClass options key : null
second myClass param : null

It's very strange...

Reply via email to