Javascript 如何正确使用。这里的每一个?

Javascript 如何正确使用。这里的每一个?,javascript,jquery,firebug,Javascript,Jquery,Firebug,这基本上是我在建的图书馆。在本模块中,我将尝试构建一个调试助手库,以在调试过程中提供帮助 我这里的问题是,当调用FDL.D.ListEvents()时,会发生一些尴尬的事情: 1) 如果我包含足够多的\u logEvent()调用,那么最后几个调用将停止在控制台关闭它们的组,这将使控制台完全无法读取 2) 它“决定”列出的事件少于实际发生的事件 例如,当我在mouseevents上使用\u logEvent()时,它会以某种“正确”的方式列出它们,或者至少以我期望函数的方式列出它们,在DOM上显

这基本上是我在建的图书馆。在本模块中,我将尝试构建一个调试助手库,以在调试过程中提供帮助

我这里的问题是,当调用
FDL.D.ListEvents()
时,会发生一些尴尬的事情:

1) 如果我包含足够多的
\u logEvent()
调用,那么最后几个调用将停止在控制台关闭它们的组,这将使控制台完全无法读取

2) 它“决定”列出的事件少于实际发生的事件

例如,当我在mouseevents上使用
\u logEvent()
时,它会以某种“正确”的方式列出它们,或者至少以我期望函数的方式列出它们,在DOM上显示并计数大约20个事件(尽管时间跨度被确定为零,这有点奇怪)

显然,我太危险了,不能发帖 图像:( 编辑:!现在我可以了!

输出图像:




当我调用包含完整事件列表的函数时, 我得到了这种奇怪的输出格式:




下面是lib(您可以运行它)的独立部分,它应该可以发挥神奇的作用

var FDL = FDL || {};

// FIREBUG DEBUG LIBRARY

FDL.D = (function()
{
    function _logEvents(eventName)
    {
        var _arr = $(":visible");
        var _count = 0;

        console.groupCollapsed(eventName);

        _arr.each(function(idx)
        {
            var _el = this;
            var _id = _el.id;

            if(!_id){
                _id = _el.tagName;
            }

            var _ev = eval("_el." + eventName);

            if(_ev){
                console.log("%o\n" + _ev + "\n\n",$(this));
                _count++;
            }
        });

        console.log(_count + " " + eventName + " events");
        console.groupEnd();

        return _count;
    }

    return {
        ListEvents : function ()
        {
            var _start = new Date().getTime();
            var _count = 0;

            console.group("Events");

                _count += _logEvents("onblur");
                _count += _logEvents("onchange");

                _count += _logEvents("onclick");
                _count += _logEvents("ondblclick");

                _count += _logEvents("onerror");
                _count += _logEvents("onfocus");

                _count += _logEvents("onkeydown");
                _count += _logEvents("onkeypress");
                _count += _logEvents("onkeyup");

                _count += _logEvents("onmousedown");
                _count += _logEvents("onmousemove");
                _count += _logEvents("onmouseout");
                _count += _logEvents("onmouseover");
                _count += _logEvents("onmouseup");

                _count += _logEvents("onresize");
                _count += _logEvents("onselect");
                _count += _logEvents("onunload");

                var _diff = new Date(new Date().getTime() - _start).getSeconds();

                console.groupCollapsed("details");
                    console.log(_count + " events bound");
                    console.log(_diff + "s runtime");
                console.groupEnd();

            console.groupEnd();
        }
    };
})();

我尝试了一些想法,但我无法找到正确的解决方案,使这些
\u logEvent()
调用按预期顺序进行。问题基本上是
。每个()
都被称为异步,我想这就是破坏代码执行顺序的原因




感谢您的输入!问题不在您的代码中,而是在groupCollapsed例程中。现在使用旧的“group”例程,您会没事的。这看起来很像您的问题