Mootools oder javascript: Was bedeutet $ tmp stehen für oder was sie tut, betreffen auch
-
05-07-2019 - |
Frage
Im Moment arbeite ich an der Tips.js
von mootools
Bibliothek und mein Code bricht auf der Linie, dass diejenigen el.$tmp
hat, und Konsole sagt, dass es nicht definiert
Kann mir jemand helfen?
Lösung
in 1,11 (nicht überprüft in 1.2+) $ tmp ein Verweis auf das Element selbst, erstellt und intern vom Garbage Collector verwendet:
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);
}
};
die Linien el.$tmp = {'opacity': 1};
(in collect Verfahren oben) und el.htmlElement = el.$tmp = el = null;
(in trash Verfahren oben) sind die einzigen Orte in der Quelle, wo diese Eigenschaft zugeordnet ist, dass ich finden konnte, obwohl es durch verschiedene andere Methoden, wie Element.setOpacity genannt und Element.getStyle (genauer gesagt, nur Lässigkeitswert zurückzukehren), sowie Methoden in der Klasse Tipps
1.2 kann dieses Problem nicht haben, aber in jedem Fall hofft, dass hilft und sorry ich nicht mehr helfen kann
Andere Tipps
Ich würde vorschlagen, Ihre Frage zu nehmen und veröffentlichen sie, zusammen mit einem Link zu der Seite entweder / oder / und:
http://groups.google.com/group/mootools-users/topics
Das ist die Gemeinschaft, die mit ihm wimmelt.
Jetzt, da es hier zu beantworten - (? Code-Beispiel) Ich würde viel mehr Informationen benötigen
Hmmm. Ich bin mir nicht ganz sicher, was el. $ Tmp auf eine Referenz in MooTools ist aber eine Meldung, die besagt „Konsole ist nicht definiert“ ist wahrscheinlich, weil jemand mit dem Firebug anmelden versucht (oder eine andere) Konsole und das Objekt nicht existiert, wenn Sie nicht haben Firebug und Freunde.
Wenn Sie nicht http://getfirebug.com haben '> Firebug für Firefox installiert dann könnten Sie es versuchen. Sehen Sie, wenn Sie die Konsole-Anweisung finden und entfernen. Auch, wenn Sie nicht mit Firefox sind, können Sie Firebug Lite in IE, Safari oder Opera verwenden.