2010-09-02 45 views
3
  1. 在網頁中我有一個按鈕。
  2. 在該函數中,我顯示一個模式對話框,並且我只想在此時處理擊鍵。那就是當模態對話框可見時。
  3. 當我關閉模式對話框我想停止按鍵處理。的JavaScript事件偵聽器添加任何時候,當點擊它調用JavaScript函數刪除事件偵聽器的任何時間

  4. 認爲我點擊一個按鈕和功能SAM()被調用。 ();()();()()()()()()()()()()()()()。 }}

  5. 所以,現在的功能附加到按鍵事件。當有按鍵被按下時,函數processkeystroke將被調用。 只有在顯示模態對話框後才能調用函數sam。

  6. 現在我關閉模式對話框,並與我不想功能(E){processKes ...}被調用。

  7. 我應該怎麼做,從document.onkeypress除去附着的事件偵聽器。

  8. 另外我想有上述方法的替代品,因爲那一個我假設我自己,我沒有提及任何特定的文檔,所以我真的要通過試驗和錯誤過程來使用事件處理程序或聽衆。

  9. 因此,當我調用函數sam我想要一個函數附加的按鍵事件,如果我調用另一個函數形式的例子closedialog()我想要的按鍵聆聽功能被刪除。因爲我想寫適當的代碼,不應該消耗大量的系統資源。

回答

2

只需編寫下面的代碼來刪除處理程序。

document.onkeypress = null; 

既然你是在談論連接你也許應該檢查jquery提供真正bind(附後),並unbind(分離)像keypress事件。

+0

不錯。我也會嘗試。 – 2010-09-02 10:58:20