1
我很高興地使用MooTool的toElement(),它能夠跟蹤哪個DOM元素屬於我的類的某個實例。有沒有辦法扭轉這種行爲?如:給它一個元素並獲得對它所屬類的實例的引用?MooTools toElement()有反向方法嗎?
我很高興地使用MooTool的toElement(),它能夠跟蹤哪個DOM元素屬於我的類的某個實例。有沒有辦法扭轉這種行爲?如:給它一個元素並獲得對它所屬類的實例的引用?MooTools toElement()有反向方法嗎?
您可以使用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');
是的,只有我會做'返回this.el .store('myclass',this);'如果它被'new MyClass()。inject(document.body);'使用, – 2012-07-16 09:08:42