我目前正在处理Tips.js
frommootools
库,并且我的代码在包含这些的行上中断el.$tmp
,并且控制台说它是未定义的
有谁能够帮助我?
我建议您提出问题并将其发布,并附上指向/或/和的页面链接:
http://groups.google.com/group/mootools-users/topics
那是与它蜂拥而至的社区。
现在至于在这里回答 - 我需要更多信息(代码示例?)
在 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可能没有这个问题,但无论如何,希望能有所帮助,对不起,我无法提供更多帮助
嗯。我不确定 el.$tmp 是 MooTools 中的引用,但一条消息指出“控制台未定义”可能是因为有人试图登录到 Firebug(或另一个)控制台,如果您不存在该对象没有 Firebug 和朋友。
如果您没有为 Firefox 安装 http://getfirebug.com'>Firebug,那么您可以试一试。看看能否找到控制台语句并将其删除。此外,如果您不使用 Firefox,您可以在 IE、Safari 或 Opera 中使用 Firebug Lite。