Удалить это в mootools? - PullRequest
       13

Удалить это в mootools?

0 голосов
/ 21 февраля 2012

Я создал класс для размещения компонента интерфейса на одной из моих веб-страниц. Есть кнопка 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, чтобы получить доступ ко всем тегам, которые создал пользователь, поэтому, если пользователь удаляет тег, я хочу, чтобы этот тег был удален из массива или установлен на undefined , или похожие. Так как экземпляр тега больше не нужен, имеет смысл удалить / подготовить для GC объект на этом этапе, чтобы память не была потрачена впустую.

Как мне это сделать, или это глупый метод? Есть ли лучший способ?

1 Ответ

1 голос
/ 21 февраля 2012

вы должны иметь возможность использовать Array.erase без каких-либо проблем.

измените ваш метод удаления на:

remove: function () {
    this.targetElement.destroy();
    Array.erase(Tags.tags, this);
    // reset reference
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...