1

私は喜んで MooTool の toElement() を使用しています。これは、どの DOM 要素がクラスの特定のインスタンスに属しているかを追跡できます。この動作を元に戻す方法はありますか? のように: 要素を与えて、それが属するクラスのインスタンスへの参照を取得しますか?

4

1 に答える 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 に答える