Может ли более одного обработчика JavaScript зарегистрироваться на событие? - PullRequest
4 голосов
/ 05 ноября 2010

Может ли несколько обработчиков JavaScript регистрироваться на событие, такое как window.onresize? Я пытался использовать + =, но это не имело никакого эффекта. Только = и это, очевидно, заменяет любые ранее назначенные события.

Ответы [ 2 ]

8 голосов
/ 05 ноября 2010

Для IE вы можете использовать: window.attachEvent('onresize', handler);

где обработчик - это ваша функция обработчика.

Во всех других браузерах вы можете использовать: window.addEventListener('resize', handler);

Обе эти функции можно использовать несколько раз для подключения нескольких обработчиков событий.

0 голосов
/ 05 ноября 2010

Вы можете зарегистрировать несколько обработчиков для одного события, но механизм для этого различен в разных браузерах, поэтому для этого проще использовать инфраструктуру:

$(document).click(function() { 
  alert('a');
});

$(document).click(function() {
  alert('b');
});

События генерируются в том порядке, в котором они связаны - поэтому в этом случае foo будет отображаться до bar. Вы можете остановить запуск последующих событий, вызвав функцию stopImmediatePropagation с обработчиком.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...