javascript随时添加事件监听器并随时删除事件监听器

时间:2010-09-02 10:37:57

标签: javascript-events

  1. 在网页中,我点击一个按钮就会调用JavaScript函数。
  2. 在该功能中,我显示了一个模态对话框,我想仅在此时处理击键。那是模态对话框可见的时候。
  3. 当我关闭模态对话框时,我想停止按键处理。

  4. 考虑我单击一个按钮并调用函数sam()。

    功能山姆() {      document.onkeypress = function(e){processKeystroke(e); } }

  5. 所以现在一个函数被附加到keypress事件。当按下某个键时,将调用函数processkeystroke。 只有在显示模态对话框后才会调用函数sam。

  6. 现在我正在关闭模态对话框,我不希望调用函数(e){processKes ...}。

  7. 我该怎么做才能从document.onkeypress中删除附加的事件监听器。

  8. 此外,我想有上述方法的替代方案,因为我假设我自己,我没有提到任何特定的文档,所以我真的通过试验和错误程序来使用事件处理程序或监听器。

  9. 因此,当我调用函数sam时,我想要一个函数附加keypress事件,如果我调用另一个函数形式示例closedialog(),我希望删除该按键监听功能。因为我想编写不应占用大量系统资源的正确代码。

1 个答案:

答案 0 :(得分:2)

只需编写以下代码即可删除处理程序。

 document.onkeypress = null;

由于您正在谈论附加,您可以检查jquery,其中提供真实的bind(附加)和unbind(分离),用于{{ 1}}。

相关问题