1

我目前正在处理Tips.jsfrommootools库,并且我的代码在包含这些的行上中断el.$tmp,并且控制台说它是未定义的

有谁能够帮助我?

4

3 回答 3

1

我建议您提出问题并将其发布,并附上指向/或/和的页面链接:

http://mooforum.net

http://groups.google.com/group/mootools-users/topics

那是与它蜂拥而至的社区。

现在至于在这里回答 - 我需要更多信息(代码示例?)

于 2008-10-06T03:55:23.873 回答
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};(在上面的收集方法中)和el.htmlElement = el.$tmp = el = null;(在上面的垃圾方法中)是我可以找到的源中分配此属性的唯一位置,尽管它是由各种其他方法调用的,例如 Element.setOpacity 和 Element.getStyle (具体来说,只返回不透明度值),以及 Tips 类中的方法

1.2可能没有这个问题,但无论如何,希望能有所帮助,对不起,我无法提供更多帮助

于 2008-10-28T10:10:40.093 回答
0

嗯。我不确定 el.$tmp 是 MooTools 中的引用,但一条消息指出“控制台未定义”可能是因为有人试图登录到 Firebug(或另一个)控制台,如果您不存在该对象没有 Firebug 和朋友。

如果您没有为 Firefox 安装 http://getfirebug.com'>Firebug,那么您可以试一试。看看能否找到控制台语句并将其删除。此外,如果您不使用 Firefox,您可以在 IE、Safari 或 Opera 中使用 Firebug Lite。

于 2008-10-06T03:59:32.133 回答