我很高兴使用 MooTool 的 toElement(),它能够跟踪哪个 DOM 元素属于我的类的某个实例。有没有办法扭转这种行为?如:给它一个元素并获得对其所属类的实例的引用?
问问题
120 次
1 回答
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');
于 2012-07-15T15:17:25.203 回答