mootools o javascript: cosa significa $ tmp o anche a cosa appartiene
-
05-07-2019 - |
Domanda
Attualmente sto lavorando alla libreria Tips.js
dalla libreria mootools
e il mio codice si interrompe sulla riga che contiene quei el. $ tmp
e la console dice che non è definito
Qualcuno può aiutarmi?
Soluzione
in 1.11 (non verificato in 1.2+) $ tmp è un riferimento all'elemento stesso, creato e utilizzato internamente dal Garbage Collector:
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);
}
};
le righe el. $ tmp = {'opacity': 1};
(nel metodo di raccolta sopra) e el.htmlElement = el. $ tmp = el = null;
(nel metodo cestino sopra) sono gli unici posti nella fonte in cui è stata assegnata questa proprietà che ho potuto trovare, sebbene sia chiamata da vari altri metodi, come Element.setOpacity e Element.getStyle (in particolare, solo per restituire il valore di opacità ), nonché i metodi nella classe Tips
1.2 potrebbe non avere questo problema, ma in ogni caso, spero che sia d'aiuto e mi dispiace non poterti aiutare di più
Altri suggerimenti
Suggerirei di porre la tua domanda e di pubblicarla, insieme a un link alla pagina su / o / e:
http://groups.google.com/group/mootools-users/topics
Questa è la comunità che pullula di esso.
Ora come per rispondere qui - avrei bisogno di molte più informazioni (esempio di codice?)
Hmmm. Non sono esattamente sicuro di quale el. $ Tmp sia un riferimento in MooTools ma un messaggio che indica "console non è definito" è probabilmente perché qualcuno stava tentando di accedere alla console di Firebug (o un'altra) e quell'oggetto non esiste se non hai Firebug e amici.
Se non hai http: //getfirebug.com'> Firebug installato per Firefox, potresti provarlo. Verifica se riesci a trovare l'istruzione della console e rimuoverla. Inoltre, se non si utilizza Firefox, è possibile utilizzare Firebug Lite in IE, Safari o Opera.