2008-10-06 9 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