大多数的jQuery代码使用匿名函数,如:
jQuery('someelements').someEvent(function() {
// code here
});
这行之有效,但对于调试不会做的那么好。 我试图找到的同时使用Firefox的萤火虫和Chrome的督察一些匿名函数的来源,暂停JavaScript功能,但它调用实际的代码是在jQuery的js文件,以及步进通过代码从来没告诉过什么线,甚至什么.js文件添加该事件。 我怎样才能看到的动作定义?
大多数的jQuery代码使用匿名函数,如:
jQuery('someelements').someEvent(function() {
// code here
});
这行之有效,但对于调试不会做的那么好。 我试图找到的同时使用Firefox的萤火虫和Chrome的督察一些匿名函数的来源,暂停JavaScript功能,但它调用实际的代码是在jQuery的js文件,以及步进通过代码从来没告诉过什么线,甚至什么.js文件添加该事件。 我怎样才能看到的动作定义?
有一个谷歌的Chrome / Firefox的插件,可以让你看到事件的jQuery或其他(特殊)库注册: 视觉事件 。
类似的问题: Firefox扩展,以找出事件的JavaScript绑定到一个检查单元?
尝试使用的非缩小的版本jQuery
和使用profile
在Firebug功能找到所调用的事件在代码中次数jQuery的来源中的特定行。
如果你的目的是要找到一些jQuery选择或功能实现的实施,请参考这个惊人的资源,正是如此:
http://www.keyframesandcode.com/resources/javascript/deconstructed/jquery/
我不知道我是完全的上下文。 但是,如果你找到函数的值(例如某些对象属性中),你总是可以导航到在Chrome DevTools上下文菜单的来源。
有一件事我发现有用的是给事件处理程序的名字,尽管它没有被调用其他地方。 这样更容易识别它的分析工具。
如
jQuery('someelements').someEvent(function someEventHandler() {
// code here
});
一旦事件处理程序都有名字,你可以破解jQuery的开发版本记录事件和处理程序名称。 我在事件调度方法添加此略高于ret = ... .apply()
var handler = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler );
console.log("FIRE EVENT ", event.type, "HANDLER: ", handler.name||'Anonymous Function');
jQuery('someelements').someEvent(function(e) {
// code here
alert(e.target);
});