AddEventListener добавить или установить? - PullRequest
0 голосов
/ 19 апреля 2019

Может ли addEventListener использоваться для добавления нескольких функций к одному и тому же событию на одной и той же цели? Или другой addEventListener заменяет предыдущий параметр?

Я спрашиваю, потому что мне нужен код с этого сайта, и вопрос в том, будет ли это намного проще сделать addEventListener , или это аналогичное решение? Я знаю, window.onload = f и addEventListener ("load", f) почти одинаковы, но не уверен в этих деталях. Нужен ли мне этот код? Запрашиваемая другой способ: почему они не используют addEventListener , если он может добавить? ..

http://webreference.com/programming/javascript/onloads/index-2.html

function addLoadEvent(func) { 
  var oldonload = window.onload; 
  if (typeof window.onload != 'function') { 
    window.onload = func; 
  } else { 
    window.onload = function() { 
      if (oldonload) { 
        oldonload(); 
      } 
      func(); 
    } 
  } 
}

Ответы [ 2 ]

2 голосов
/ 19 апреля 2019

Вы можете добавить столько слушателей определенного типа, сколько хотите, с помощью addEventListener:

div.addEventListener('click', () => console.log('listener 1'));
div.addEventListener('click', () => console.log('listener 2'));
<div id="div">click me</div>

Напротив, когда вы присваиваете свойству события on-, если ранее было что-то, что было назначено этому свойству, оно будет потеряно,и будет запущен только последний, назначенный ему:

div.onclick = () => console.log('listener 1');
div.onclick = () => console.log('listener 2');
<div id="div">click me</div>

Так что, в общем, лучше использовать addEventListener, чтобы убедиться, что ваш скрипт не перезаписывает чужой слушатель, и чтобы убедиться, что ваш слушательтакже не перезаписывается.

Код в вопросе довольно странный - да, вместо них следует использовать addEventListener.

1 голос
/ 19 апреля 2019

Может ли addEventListener использоваться для добавления нескольких функций к одному и тому же событию в одной и той же цели?

Да

Или другой addEventListener заменяет предыдущий параметр?

Нет

Почему они не используют addEventListener, если он может добавить?

Возможно, из-за незнания возможностей addEventListener?или, может быть, для иллюстрации некоторых ситуаций.

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