2010-09-02 2 views
3
  1. На веб-странице у меня есть кнопка при нажатии на нее вызывает функцию JavaScript.
  2. В этой функции я показываю модальное диалоговое окно, и я хочу обрабатывать нажатия клавиш только в это время. То есть, когда модальное диалоговое окно видно.
  3. Когда я закрываю модальный диалог, я хочу остановить обработку нажатия клавиш.javascript добавить слушателя событий в любое время и удалить прослушиватель событий в любое время

  4. Учтите, что я нажимаю кнопку и вызывается функция sam().

    функция sam() { document.onkeypress = function (e) {processKeystroke (e); } }

  5. Итак, теперь функция привязана к событию нажатия клавиши. когда когда-либо нажата клавиша, будет вызвана функция processkeystroke. Функция sam вызывается только после отображения модального диалогового окна.

  6. Теперь я закрываю модальный диалог и с этим хочу, чтобы функция (e) {processKes ...} вызывалась.

  7. Что я должен сделать, чтобы удалить подключенный прослушиватель событий из документа document.onkeypress.

  8. Также я хотел бы иметь альтернативы для вышеупомянутого подхода, потому что тот, который я принял от себя, и я не ссылался на какую-либо конкретную документацию, поэтому я действительно просматриваю процедуру проб и ошибок для использования обработчиков событий или слушателей.

  9. Поэтому, когда я вызываю функцию sam, я хочу, чтобы функция была привязана к событию нажатия клавиши, и если я вызываю другой пример формы формы closedialog(), я хочу, чтобы функция прослушивания клавиш была удалена. Потому что я хочу написать правильный код, который не должен потреблять много системных ресурсов.

ответ

2

Просто напишите следующий код, чтобы удалить обработчик.

document.onkeypress = null; 

Так вы говорите о прикрепление вы, возможно, следует проверить jquery, которая обеспечивает реальное bind (прикрепить) и unbind (отрывать) для таких событий, как keypress.

+0

Nice. Я тоже попробую. –

Смежные вопросы