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...