在mootools中删除它?

时间:2012-02-21 13:08:23

标签: javascript mootools

我已经创建了一个类来在我的一个网页上保存一个接口组件。有一个add按钮来实例化类并将新元素插入DOM。我想给类一个remove方法从dom中删除元素,然后销毁实例。

我有这个:

// can have multiple tags
var Tag = new Class({
    Implements: [Options, Events],
    this.targetElement: undefined,
    this.tagName: undefined

    initialize: function() {
        this.targetElement = new Element('input', { class: 'tag' });
        this.targetElement.inject($('tagHolder'));

        ...
        // event handler to set `this.tagName` to contents of the input
        ...

        if (Tag.tags === undefined)
            Tag.tags = [];
        Tag.tags.push(this);
    },
    remove: function () {
        this.targetElement.destroy();
        delete this;
    }

这会从DOM中删除该元素,但不会删除该实例对象。

我想使用数组tag.tags来访问用户创建的所有标记,因此如果用户删除标记,我希望从数组中删除该标记,或者将其设置为{ {1}}或类似的。由于不再需要标记实例,因此在此时删除/准备GC对象是有意义的,这样就不会浪费内存。

我该怎么做,或者这是一个愚蠢的方法?还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

你应该可以使用Array.erase来解决任何问题。

将您的删除方法更改为:

remove: function () {
    this.targetElement.destroy();
    Array.erase(Tags.tags, this);
    // reset reference
}