2013-05-31 31 views
1

初學者/中級開發人員在這裏試圖掌握跟蹤事件監聽器,但發現自己感到困惑和沮喪,因爲它總是指向處理事件的庫,而不是用戶的腳本。從事件監聽器實例手風琴的具有「KEYUP」事件中綁定一個選擇元素:事件監聽器Chrome開發工具 - 擴展jQuery - 甚至爲什麼監聽器指向庫而不是自定義/擴展腳本?

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方法做它的一個該死的好工作,但我仍然不明白爲什麼事件手風琴(在開發工具中)會指向庫而不是定製腳本?

在課堂上我錯過了一些真正基本的東西嗎?在Resources選項卡中,除了CTRL + F之外,還有哪些方法可用於跟蹤這些類型的內容,而btw在文件中沒有爲「select」產生任何搜索結果,ACTUALLY擴展/添加了此偵聽器 - 非常奇怪的是它不是?

更新:所以我覺得這很愚蠢,但答案是正確的在我眼前 - 或者我認爲。在他們的自定義腳本的頂部,他們開始,

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

這可能是答案的開始?真是想什麼,我要明白是爲什麼事件會仍然追溯到當事件偵聽器上面的代碼中綁定的庫,

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

回答

1

據我瞭解,這是因爲當jQuery的綁定一個事件,它不會直接綁定到您的代碼,而是綁定到jQuery代碼,然後將事件分派給您的代碼。 Chrome devtools不知道(在這一點上,it seems to be in development)jQuery如何綁定事件,所以只顯示第一個處理程序(jQuery)。

定義調用是我相信的CommonJS Modules Standard的一部分。另見RequireJS