2016-01-20 61 views
2

我想找到一個我已附加到文檔的事件監聽器,但是當我console.log它時,我得到一個錯誤。我試圖得到getElementById和getElementsByClassName,但我看不到我附加到它的Event偵聽器。下面是測試代碼javascript - 如何找到文檔的eventlistener?

document.addEventListener('keydown', test,false); 

function test(e) { 
    console.log(document); 
} 

我想要做的就是抓住事件監聽器將其保存並在另一個類中重新添加以後。東西

var savedListener = document._listener; 
document.removeAllEventListener(); 

,也許在另一個類例如

document._listener = savedListener ; 
+0

[獲取附加到的事件偵聽器的可能的重複節點使用addEventListener](http://stackoverflow.com/questions/9046741/get-event-listeners-attached-to-node-using-addeventlistener) – Matt

+0

@馬特SL我試過,但它一直說函數undefined或我是隻是使用它錯了。 – user629283

回答

0

您可以將事件的不同參數存儲在一個變量中,然後使用它:

var evtToSave = { 
 
    "event": 'keydown', 
 
    "function": test, 
 
    "useCapture": false 
 
}; 
 

 
document.addEventListener(evtToSave.event, evtToSave.function, evtToSave.useCapture); 
 

 
function test(e) { 
 
    console.log(document); 
 
} 
 

 
//document.removeAllEventListener(); 
 
document.removeEventListener(evtToSave.event, evtToSave.function); 
 

 

 
document.addEventListener(evtToSave.event, evtToSave.function, evtToSave.useCapture);

+0

這種方式很好,但如果我有2班的東西。我不希望其他班級知道它有什麼事件功能。只需要知道保存該事件並在執行完後再添加它。所以如果兩個類都有按鍵事件處理程序,它不需要知道它是什麼。只需要知道它有一個監聽器保存並稍後應用。你明白我的意思嗎? – user629283