Передача дополнительного параметра через Event Listener - PullRequest
0 голосов
/ 25 марта 2019

этот код: var messageLine = "это строка текста";

myTextField.addEventListener('change', textHasBeenChanged, false);

вызывает эту функцию:

function textHasBeenChanged(e) { var target = e.target; messageLine = target.value;}

Теперь я хочу передать дополнительный фрагмент данных ... как простое число 1. Например:

myTextField.addEventListener('change', function(){textHasBeenChanged(theValueOfTheTextField, theNumber1);});

Как это можно сделать? Я все еще новичок в программировании, поэтому, пожалуйста, держите ваш ответ как можно ближе к синтаксису, который вы видите выше.

Ответы [ 2 ]

0 голосов
/ 25 марта 2019

Если после этого вы не собираетесь отключать четный прослушиватель, вы можете просто передать аргумент функции, которую вы передаете прослушивателю событий

myTextField.addEventListener('change', textHasBeenChanged(1), false);

у вас нетпередать e для события, потому что при предоставлении именованной функции слушателю события e уже предполагается, что первым аргументом

0 голосов
/ 25 марта 2019

Вы можете вызывать / вызывать функцию внутри анонимной функции, передавая дополнительный параметр. Также вы можете рассмотреть возможность использования события input вместо change, которое запускается синхронно при изменении значения элемента <input>, <select> или <textarea>:

var messageLine = "this is a line of text";
var myTextField = document.getElementById('myTextField');
myTextField.addEventListener('input', function(){textHasBeenChanged(event, 1)}, false);


function textHasBeenChanged(e, other) { 
  var target = e.target;
  messageLine = target.value;
  
  console.clear(); //clear the previous data in console
  console.log(messageLine);
  console.log(other);
}
<input id="myTextField"/>
...