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”例程,您会没事的。这看起来很像您的问题