Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将事件和参数传递给另一个函数_Javascript - Fatal编程技术网

Javascript 将事件和参数传递给另一个函数

Javascript 将事件和参数传递给另一个函数,javascript,Javascript,为了将事件信息传递给change函数,我必须从事件侦听器调用change函数,而不带括号 var boxes = document.getElementsByClassName('boxes'); for(var i = 0; i < boxes.length; i++){ boxes[i].addEventListener('click', change, false); } function change(e){ e.target.style.border = '1px s

为了将事件信息传递给change函数,我必须从事件侦听器调用change函数,而不带括号

var boxes = document.getElementsByClassName('boxes');

for(var i = 0; i < boxes.length; i++){
  boxes[i].addEventListener('click', change, false);
}

function change(e){
  e.target.style.border = '1px solid red';
}
var-box=document.getElementsByClassName('box');
对于(变量i=0;i
当我想在传递事件的同时传递一个参数时,问题就来了。似乎在添加参数时,事件失败

我如何能够包括这样的内容,即传递事件以更改边框,但也能够将参数传递到函数中

var boxes = document.getElementsByClassName('boxes');

for(var i = 0; i < boxes.length; i++){
  boxes[i].addEventListener('click', change(10, 20), false);
}

function change(e, a, b){
  e.target.style.border = '1px solid red';
  console.log(a * b);
}
var-box=document.getElementsByClassName('box');
对于(变量i=0;i

任何帮助都会很好

向其传递一个匿名函数:

boxes[i].addEventListener('click', function ( e ) { change(e, 10, 20) }, false);
现在将其添加到单击事件中

boxes[i].addEventListener('click', changeFn, false);
在这种情况下,删除事件侦听器很简单

boxes[i].removeEventListener('click', changeFn, false);

@Paulpro所说的与您想要的最接近,您不能创建具有未知参数的委托。在我的案例中,我尝试了一天,将参数发送到ajax成功函数。
boxes[i].removeEventListener('click', changeFn, false);