2008-10-06 11 views
1

我目前在Tips.js工作和控制台说,它的不确定

任何人都可以帮助我吗?

+0

“$ tmp”只是一个属性名称。 JavaScript变量/属性可以带有“$”。你能告诉我们一些你正在做的代码摘录吗?对我来说就像是一个API滥用,导致MooTools在应该设置属性时应该呕吐。 – 2008-10-06 03:34:25

回答

1
在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};(在上面collect方法)和el.htmlElement = el.$tmp = el = null;(在上面的垃圾方法中)是源中唯一可以找到该属性的地方,尽管它被其他各种方法调用,例如Element.setOpacity和Element.getStyle(具体而言,仅返回不透明度值)以及Tips类中​​的方法

1.2可能没有这个问题,但在任何情况下,希望帮助和抱歉,我忍不住

0

嗯(代码示例?)。我不确定el。$ tmp是MooTools中的一个参考,但是提示“console is undefined”的消息可能是因为有人试图登录到Firebug(或其他)控制台,并且该对象不存在没有Firebug和朋友。

如果您还没有为Firefox安装Firebug,那么您可以试试它。看看你是否可以找到控制台声明并将其删除。另外,如果您不使用Firefox,则可以在IE,Safari或Opera中使用Firebug Lite。

+0

他说控制台说el。$ tmp是未定义的,不是控制台未定义。 – nickf 2008-10-06 04:00:40