2016-01-20 45 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