2012-07-15 39 views

回答

2

您可以使用Element.store()Element.retrieve()方法在DOM元素上存儲和檢索對象引用。

你的類可以是例如:

var MyClass = new Class({ 

    initialize: function(element) { 
     this.el = document.id(element); // Store element for later usage 

     // Store a reference to "this" object on the Element itself 
     this.el.store('_MyClass', this); 

     return this; 

    }, 

    // Object -> Element (you already know this) 
    toElement: function() { 
     return this.el; 
    } 

}); 

// The following implements a new property for all Elements (optional) 
Element.Properties.myClass = { 

    get: function() { 
     return this.retrieve('_MyClass'); 
    } 

}; 

,然後檢索附加到DOM元素的對象實例:

// Object creation 
new MyClass($('some_element')); 

// The easy way, if you did not implemented Element property 
var myClassInstance = $('some_element').retrieve('_MyClass'); 

// Or prettier, if you implemented property like I showed you 
var myClassInstance = $('some_element').get('myClass'); 
+0

是的,只有我會做'返回this.el .store('myclass',this);'如果它被'new MyClass()。inject(document.body);'使用, – 2012-07-16 09:08:42