Here is the exemple :
http://jsfiddle.net/neilime/8ebwd/

On 5 jan, 23:13, Oskar Krawczyk <[email protected]> wrote:
> Please create an example on jsfiddle.net, and paste back a link.
>
> On 2011-01-05, at 22:23, Neilime wrote:
>
> > 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