mootools или javascript:что означает $tmp или к чему это относится

StackOverflow https://stackoverflow.com/questions/173115

  •  05-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

в 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; (в методе trash выше) - это единственные места в источнике, где назначено это свойство, которые я смог найти, хотя он вызывается различными другими методами, такими как Element.setOpacity и Element.getStyle (в частности, только для возврата значения непрозрачности ), а также методы в классе Tips

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

Другие советы

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

http://mooforum.net

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top