我想只显示一次函数和选择器,但显示绑定的次数。例如,如果我们有4个输入,输出将是:
< Buff行情>
jquery(:input)len:1函数()alert(“clicked!”)}
< /块引用MPT生成调试帮助程序库,以便在调试期间帮助我。
我的问题是FDL.D.ListEvents()被称为两件尴尬的事情发生:
1)如果我包括足够的_logEvent()呼叫,最后几个停止在控制台关闭他们的组,这使得它完全不可读。
2)它“决定”它列出的事件比实际少。
当我使用yLogEvices()例如,在mouseEvents上,它列出了一些“正确的”,或者至少按照我希望函数工作的方式列出,显示并统计了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();
}
};
})();
我试过一些想法,但我没能想出正确的解决办法来做这些yLogEvices()按预期顺序调用链。问题主要在于.each()被称为异步,我想这就是破坏代码执行顺序的原因。
谢谢你的意见!<3堆叠溢出
编辑:我用group()调用更改了groupcolled()调用,它确实有效。现在,我面临一个不同的问题,我应该如何使其成为这样,只要绑定函数相同,它就只为每个事件名显示一次绑定?
例如,如果我们在某个地方$(":input").click(function(){alert("Clicked!");});
我想_logEvents("onclick")只显示一次函数和选择器,但显示绑定的次数。例如,如果我们有4个输入,输出将是:
jquery(:input)len:1函数()alert(“clicked!”);}