通过事件监听器传递附加参数

时间:2019-03-25 14:49:42

标签: javascript textfield addeventlistener

此代码: 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 :(得分:0)

您可以通过传递附加参数在匿名函数内部调用/调用该函数。您也可以考虑使用input事件,而不是change元素或<input>元素的值被更改时同步触发的<select>: / p>

<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);
}

答案 1 :(得分:0)

如果您不打算在以后取消偶数侦听器,那么应​​该可以将参数正确地传递给要提供给事件侦听器的函数

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

您不必为事件传递e,因为为事件侦听器提供命名函数时,e已被假定为第一个参数