如何找到原始(匿名函数)jQuery的事件源?(How to find the original (

2019-09-24 06:51发布

大多数的jQuery代码使用匿名函数,如:

jQuery('someelements').someEvent(function() {
    // code here
});

这行之有效,但对于调试不会做的那么好。 我试图找到的同时使用Firefox的萤火虫和Chrome的督察一些匿名函数的来源,暂停JavaScript功能,但它调用实际的代码是在jQuery的js文件,以及步进通过代码从来没告诉过什么线,甚至什么.js文件添加该事件。 我怎样才能看到的动作定义?

Answer 1:

有一个谷歌的Chrome / Firefox的插件,可以让你看到事件的jQuery或其他(特殊)库注册: 视觉事件 。

类似的问题: Firefox扩展,以找出事件的JavaScript绑定到一个检查单元?



Answer 2:

尝试使用的非缩小的版本jQuery和使用profile在Firebug功能找到所调用的事件在代码中次数jQuery的来源中的特定行。

如果你的目的是要找到一些jQuery选择或功能实现的实施,请参考这个惊人的资源,正是如此:
http://www.keyframesandcode.com/resources/javascript/deconstructed/jquery/



Answer 3:

我不知道我是完全的上下文。 但是,如果你找到函数的值(例如某些对象属性中),你总是可以导航到在Chrome DevTools上下文菜单的来源。



Answer 4:

有一件事我发现有用的是给事件处理程序的名字,尽管它没有被调用其他地方。 这样更容易识别它的分析工具。

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'); 


Answer 5:

jQuery('someelements').someEvent(function(e) {
    // code here
alert(e.target);
});


文章来源: How to find the original (Anonymous function) source of jQuery events?