mootools или javascript: что означает $ tmp или что тоже относится - PullRequest
1 голос
/ 06 октября 2008

В настоящее время я работаю над библиотекой Tips.js из mootools, и мой код разбивается на строку с этими el.$tmp, и консоль говорит, что она не определена

Кто-нибудь может мне помочь?

Ответы [ 3 ]

1 голос
/ 28 октября 2008

в 1.11 (не проверено в 1.2+) $ tmp - это ссылка на сам элемент, созданный и используемый внутри сборщиком мусора:

var Garbage = {

    elements: [],

    collect: function(el){
        if (!el.$tmp){
            Garbage.elements.push(el);
            el.$tmp = {'opacity': 1};
        }
        return el;
    },

    trash: function(elements){
        for (var i = 0, j = elements.length, el; i < j; i++){
            if (!(el = elements[i]) || !el.$tmp) continue;
            if (el.$events) el.fireEvent('trash').removeEvents();
            for (var p in el.$tmp) el.$tmp[p] = null;
            for (var d in Element.prototype) el[d] = null;
            Garbage.elements[Garbage.elements.indexOf(el)] = null;
            el.htmlElement = el.$tmp = el = null;
        }
        Garbage.elements.remove(null);
    },

    empty: function(){
        Garbage.collect(window);
        Garbage.collect(document);
        Garbage.trash(Garbage.elements);
    }

};

строки el.$tmp = {'opacity': 1}; (в методе сбора выше) и el.htmlElement = el.$tmp = el = null; (в методе мусора выше) - единственные места в источнике, где назначено это свойство, которые я могу найти, хотя он вызывается различными другими методами, такими как как Element.setOpacity и Element.getStyle (в частности, только для возврата значения непрозрачности), а также методы в классе Tips

1.2 может не иметь этой проблемы, но в любом случае, надеюсь, что это помогает, и извините, я не мог помочь больше

1 голос
/ 06 октября 2008

Я бы предложил взять ваш вопрос и опубликовать его вместе со ссылкой на страницу на / или / и:

http://mooforum.net

http://groups.google.com/group/mootools-users/topics

Это сообщество, которое кишит этим.

Теперь, что касается ответа здесь - мне нужно гораздо больше информации (пример кода?)

0 голосов
/ 06 октября 2008

Хммм. Я не совсем уверен, на что ссылается el. $ Tmp в MooTools, но сообщение о том, что «консоль не определена», возможно, связано с тем, что кто-то пытался войти в консоль Firebug (или другой), и этот объект не существует, если вы У меня нет Firebug и друзей.

Если у вас не установлен http://getfirebug.com'>Firebug для Firefox, вы можете попробовать. Посмотрите, сможете ли вы найти консольный оператор и удалить его. Кроме того, если вы не используете Firefox, вы можете использовать Firebug Lite в IE, Safari или Opera.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...