事件监听器Chrome开发工具 - 扩展jQuery - 为什么甚至监听器都指向库而不是自定义/扩展脚本?

时间:2013-05-31 03:43:07

标签: google-chrome-devtools extend event-listener

初学者/中级开发人员在这里尝试抓住追踪事件监听器,但发现自己感到困惑和沮丧,因为它总是指向处理事件的库,而不是用户的脚本。来自具有“keyup”事件绑定的select元素的Event Listeners手风琴的示例:

keyup
    div.select
    handler: function (e){return typeof b===i||e&&b.event.triggered===e.typet:b.event.dispatch.apply(f.elem,arguments)}
    isAttribute: false
    lineNumber: 3
    listenerBody: "function (e){return typeof b===i||e&&b.event.triggered===e.type?t:b.event.dispatch.apply(f.elem,arguments)}"
    node: div.select
    sourceName: "https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"
    type: "keyup"
    useCapture: false

显然他们正在使用jQuery,并且他们通过使用jQuery的$ .extend方法做得非常好,但我仍然不明白为什么事件手风琴(在开发工具中)会指向库而不是比定制的脚本?

我上课时错过了什么基本的东西吗?除了在资源选项卡中的CTRL + F之外,还有哪些方法可以跟踪这些类型的东西,btw没有在ACTUALLY扩展/添加此监听器的文件中产生“select”的任何搜索结果 - 非常奇怪的是它不是?

更新:所以我对此感到非常愚蠢,但答案恰好在我面前 - 或者我认为。在他们的自定义脚本的顶部,他们以

开头
define(["jquery"], function($) {

这可能是答案的开始吗?我真正希望理解的原因是,当事件监听器绑定在上面的代码中时,事件仍会追溯到库,

$el.textHolder.click(function(e){ 
    ... do stuff ...
}

1 个答案:

答案 0 :(得分:1)

据我所知,这是因为当jQuery绑定一个事件时,它不会将它直接绑定到你的代码,而是绑定到jQuery代码,然后将事件调度到你的代码中。 Chrome devtools不知道(此时,it seems to be in development)jQuery如何绑定事件,所以只显示第一个处理程序(jQuery)。

我认为,定义调用是CommonJS Modules Standard的一部分。另请参阅RequireJS